在TypeScript中为对象添加特定类型

时间:2018-04-11 15:26:11

标签: typescript

假设我有一个建模的对象:

public versionConfiguration = {
    VersionOne: {
        textOne: "textOne"
    },
    VersionTwo: {
        textOne: "textOne"
    }
};

有没有办法,使用TypeScript,给它一个特定的类型?创建自定义界面可能会更好吗?

2 个答案:

答案 0 :(得分:1)

如果versionConfiguration是变量,则可以将其用作类型:

let foo: typeof versionConfiguration;

如果对象是原始帖子中的类属性,那么这不会起作用。在这种情况下,应定义interfacetype

答案 1 :(得分:0)

这个小例子有点过分,但如果你真的想要更高级的东西,那就完整了:

interface Version {
  textOne: "textOne" | "textTwo";
}

interface VersionConfiguration {
  VersionOne: Version;
  VersionTwo: Version;
}

由于您已经提到这是版本配置,因此我使用了string literal union type的示例。只有在您知道textOne可能提前采用的值时,这才适用。

否则,只需实施

即可
interface Version {
  textOne: string;
}