Typescript类方法,约束于类属性

时间:2018-04-12 23:17:50

标签: typescript

鉴于以下课程:

class MyOb {
  foo: string; 

  setFields(props) {
    Object.assign(this, props);
  }
}

是否可以将props的{​​{1}}参数限制为setFields的属性?那样:

MyObj

1 个答案:

答案 0 :(得分:3)

您正在寻找keyof和映射类型:

setFields(props: { [TKey in keyof MyOb]?: MyOb[TKey] } ) {

请注意?,因为您希望每个属性都是可选的。

Demo

Docs