是否可以在编译时添加类型信息?

时间:2018-06-12 08:43:33

标签: typescript

我们说我有以下代码:

function addProperties(keys: String[]): Object
{
    // For the sake of example, this is a concrete return
    return {
        firstProperty: "first_value",
        secondProperty: "second_value"
    };
}

export default {

    propertyBag: {
        ...addProperties(["firstProperty", "secondProperty"])
    },

    someMethod() {
        return this.firstProperty;
    }

};

Typescript自然会抱怨此对象上不存在firstProperty

是否有可能动态地“生动”。添加类型信息让TS知道此对象上是否存在firstPropertysecondProperty

理想情况下,我希望能够在不必为propertyBag单独定义的情况下执行此操作,如下面的答案所示。

1 个答案:

答案 0 :(得分:1)

不确定addProperty来自哪里以及它的定义是什么,但假设它返回一个具有指定为参数的属性的对象,您可以指定someMethod将具有{{1}参数与属性包的类型相同。唯一的问题是您需要将this的定义与propertyBag

分开
export default