从Typescript接口生成对象

时间:2017-06-21 01:55:54

标签: javascript typescript

我意识到这实际上是Typescript的相反意图,但我希望能够以编程方式从typescript接口生成一个对象。基本上,我想要这样的东西:

interface Foo {
    bar: string
}

const generateObjFromInterface = (Foo) => // { bar: 'string'}

我 - 不要 - 介意如果可能的话,实施是多么人为!如果绝对不可能也是有用的信息!

提前致谢!

2 个答案:

答案 0 :(得分:2)

由于TypeScript的接口不存在于JavaScript输出中,因此无法通过接口进行运行时反射。

鉴于此TypeScript:

interface Foo {
    bar: string
}

这是结果JavaScript:

enter image description here

由于没有JavaScript,你想要做什么绝对不可能是非常人为的。

编辑:想想看,你可以在运行时查找,读取和解析* .ts源文件。

答案 1 :(得分:1)

有可能。由于typescript 2.4即将到来,我们可以在编译期间使用自定义变换器作为typescript,并获取所有属性的列表,从而创建具有此类属性的对象。

这是一个example,但请注意 - 正如我所说,这需要使用尚未稳定发布的typescript 2.4+