给定以下类(class):
class MyOb {
foo: string;
setFields(props) {
Object.assign(this, props);
}
}
是否可以将 setFields
的 props
参数限制为 MyObj
的属性?这样:
new MyOb().setFields({ foo: 'bar' }) // compiles
new MyOb().setFields({ x: 'bar' }) // fails, property x is not a part of MyOb
最佳答案
您正在寻找 keyof
和映射类型:
setFields(props: { [TKey in keyof MyOb]?: MyOb[TKey] } ) {
请注意 ?
,因为您希望每个属性都是可选的。
关于Typescript 类方法,受限于类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49807176/