假设我有现有类型
interface ColDef {
field: string;
// some other properties
}
我想推断具有相同属性的新类型,但将字段属性重新字符串为:
field: 'ID' | 'Name' | 'SomeOtherProps'
或者
field: keyof Customer
是否可以从现有类型推断出新类型并更改一个或多个属性的类型?
假设我有现有类型
interface ColDef {
field: string;
// some other properties
}
我想推断具有相同属性的新类型,但将字段属性重新字符串为:
field: 'ID' | 'Name' | 'SomeOtherProps'
或者
field: keyof Customer
是否可以从现有类型推断出新类型并更改一个或多个属性的类型?
只需扩展基本类型并覆盖属性定义:
interface MyColDef extends ColDef {
field: 'ID' | 'Name'
}
let myCol: MyColDef = {
field: 'blabla' //compiler error
};
您可以创建自定义类型type来限制属性值。
type Field = "ID" | "Name" | "SomeOtherProps"
interface ColDef {
field: Field;
}
在上面的代码field中只会接受"ID", "Name", "SomeOtherProps"