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