【发布时间】:2018-08-02 17:33:01
【问题描述】:
Typescript compiler 在我尝试使用联合或多个类型/接口时不断抛出错误。
我的要求
我从服务器收到一个对象作为响应,其中一个键 ('errorMessages') 的数据类型为 string[],另一个键 ('data')可以是object 或array。我为此写了一个interface,应该如下所示:
interface MyServerResponse {
errorMessages: string[];
data: {
headers: string[];
body: any[][];
} | any[]>;
}
在尝试访问 'headers'
时收到编译器错误
属性 'headers' 不存在于类型 'any[] | {标题:字符串[];正文:任何[][]; }'
难道不能像number | boolean、string | null 等那样使用联合来实现吗?
【问题讨论】:
-
any[]不应该在 body 上吗?interface MyServerResponse { errorMessages: string[]; data: { headers: string[]; body: any[][]| any[]; } ; } -
不,数据中的
body键始终是any[][]。我想要数据键上的联合(正如问题中提到的那样)。更新了问题以更清晰。
标签: typescript