Typescript动态属性输入

时间:2017-01-08 19:44:22

标签: javascript typescript casting

我有一个类,它接受一个我想将其属性设置为实例的 this 的对象:

class Test {
  constructor(config) {
   for(let field in config) {
      this[field] = config[field];
    }
  }
}

const test = new Test({name: "JOHN", age: 13});

配置对象是动态的,可以是任何属性;有一种方法,我可以在启动后获得智能感知?

例如,现在当我输入test和dot时,我希望得到Intellisense,因为配置对象属性是该类的成员。

1 个答案:

答案 0 :(得分:1)

我认为你能得到的最接近的是具有通用属性的泛型类

class Test<T> {
  constructor(public config: T) { }
}

interface Person {
  name: string;
  age: number;
}
const test = new Test<Person>({ name: "JOHN", age: 13 });

test.config.name

intellisense

类型不会改变你的代码,它们只是设计时的工件。类型只会“蒸发”#34;在编译时,所以TypeScript无法为智能感知提供在运行时发生的事情。