type ActionType = "one" | "two" | "three"
// 第一种写法
interface Action {
type: ActionType
num?: number
}
// 第二种写法
type Action2 = {
type: 'one'
} | {
type: 'two'
} | {
type: 'three'
num: number
}
Action 类型有一个 type 字段,但是只有在类型为 three 时才需要 num 字段。第一种写法比较简单,但是表达不准确。而第二种表达准确但是写起来繁琐。
实际使用中 type 类型有十多种,大部分结构是一样的,只有一两个类型有特殊的结构。有什么写法写起来不用太繁琐但又表达准确?
type Action = {
type: 'one' | 'two' | 'others'
} | {
type: 'three',
num: number
} | {
type: 'four',
str: string
}
在写单元测试中,我想抽象一个通用的函数,避免重复书写。函数的定义如下: 但是我不知道如果建立 fn 函数参数的类型和 source 类型之间的联系。 请问要怎么写才可以让 source 的类型等于 fn 参数类型的数组?
如上面代码所示,需要指定 arr 参数的数据类型,这个数据数据类型是 p1 或者 p2 参数的 key.请问这个改如何指定呢。
想实现value是string那么val就是string,value是string[]那么val就是string[]
看到一个interface的声明,非常复杂: 1、这个很难看懂,请问一下,应该如何学习这个定义呢? 是否可以拆分一点一点地学到它的含义? 2、需要带着什么样的思路才能去看懂,从想要定义它的目的去阅读吗?
LineSeries['areaStyle']的类型是AreaStyle | undefined 报错:类型“AreaStyle | undefined”上不存在属性“color”。 如何通过 LineSeries使用color属性的类型呢?
我在玩TypeScript中的条件类型。我想用条件返回类型编写一个函数。如果函数被传递一个字符串,它将返回一个名称,否则它将返回一个Id。 我在返回语句中得到以下错误: 我错过了什么?Thnx! 编辑:直接摘自Anders Hejlsberg在Build 2018上的演讲:https://youtu.be/hDACN-BGvI8?t=2241 他甚至说“我们不再需要写函数重载了…” 如果我将代码更