type Foo = {
type: 'string' | 'number',
value: string | number
}
比方上面的类型,如果我想要 value
的类型在type
为 'string'
时为 string
,在 type
为 'number'
的时候为 number
。
要怎么定义这两个属性之间的类型约束?
最简洁的方式是使用 TypeScript 的条件类型(也称为分发条件类型或泛型条件类型)来定义一个新的类型。
你可以看看这篇文章:https://mybj123.com/23000.html
type TMap = {
string: string,
number: number,
}
type Foo<K extends keyof TMap> = {
type: K,
value: TMap[K],
}
或者简单一点:
type Foo = {
type: 'string',
value: string
} | {
type: 'number',
value: number
}
我想给一个对象里所有值为null的属性赋其它值,比如: 有没有大佬知道 assignDefaults 这个函数如何实现?
我在挣扎。 当扩展一个类时,我可以很容易地向它添加一些新属性。 但是,当我扩展基类时,如果我想向基类的对象(简单对象的属性)添加新属性,该怎么办? 下面是一个带有一些代码的示例。 基类 派生类 现在,正如您可以从行内注释中看到的,这将激怒TypeScript。但这在JavaScript中工作。那么,实现这一目标的正确方法是什么呢?如果没有,问题是在我的代码模式本身吗?什么模式适合这个问题? 也许您
今天,我意识到让数组像字典一样运行更有意义,这样我就可以通过名称而不是数字索引访问特定元素。我希望能够执行而不是(即使我声明了一个将submitButton映射到请求的索引的枚举)。 这是可行的,但我现在允许一堆欺骗我的代码库,这是很糟糕的。我希望对象知道,只有类型的东西才能放入其中。 我可以用这些字段声明一个类,因为我希望它们的数量在将来可以动态添加,所以下面的操作是不可行的。
这是我的代码: 我想将的值设置为,我该怎么做?我试过,
为什么需要这样AddDataType<'AlarmTips'> 才能正确获取类型? 不是已经使用 <T>进行关联了吗?
我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。