为什么我的接口联盟不起作用?

时间:2015-03-20 07:18:09

标签: typescript

我有一个名为IContact的接口,它将作为单个对象或数组包含在响应对象中。我试图在界面中编写代码

export interface ResponseObject {
    data:IContact|Array<IContact>;

}

但我得到了

  

错误TS2339:类型'IContact |上不存在属性'name' IContact接口[]”。

换句话说

我的应用使用data:IContact编译,只需添加“| string”即可使data:IContact|string失败并出现上述错误。

我应该如何正确定义界面?

1 个答案:

答案 0 :(得分:3)

它工作正常,如下所示:

interface IContact {
    name: string;
}
interface ResponseObject {
    data: IContact|Array<IContact>;
}

var response: ResponseObject = {
    data: {
        name: '123'
    }
};

Try it online

注意:

a。)确保为visual studio安装了TS 1.4。

b。)除非您使用beta频道,否则Webstorm不支持​​TS 1.4。