我意识到这实际上是Typescript的相反意图,但我希望能够以编程方式从typescript接口生成一个对象。基本上,我想要这样的东西:
interface Foo {
bar: string
}
const generateObjFromInterface = (Foo) => // { bar: 'string'}
我 - 不要 - 介意如果可能的话,实施是多么人为!如果绝对不可能也是有用的信息!
提前致谢!
答案 0 :(得分:2)
由于TypeScript的接口不存在于JavaScript输出中,因此无法通过接口进行运行时反射。
鉴于此TypeScript:
interface Foo {
bar: string
}
这是结果JavaScript:
由于没有JavaScript,你想要做什么绝对不可能是非常人为的。
编辑:想想看,你可以在运行时查找,读取和解析* .ts源文件。
答案 1 :(得分:1)
有可能。由于typescript 2.4即将到来,我们可以在编译期间使用自定义变换器作为typescript,并获取所有属性的列表,从而创建具有此类属性的对象。
这是一个example,但请注意 - 正如我所说,这需要使用尚未稳定发布的typescript 2.4+