如何键入可能看起来不同的服务器响应?

时间:2017-07-03 11:25:30

标签: typescript

我正在查询可以用

响应的服务器
interface Response {
  [id: string]: Data
}

interface Response {
  error: string
}

但是我收到以下错误:Property 'error' of type 'string' is not assignable to string index type '{ /* Structure of Data */ }'.

应该如何输入?

1 个答案:

答案 0 :(得分:2)

您可以将服务器响应类型定义为union数据响应和错误响应:

interface DataResponse {
    [id: string]: Data
}

interface ErrorResponse {
    error: string
}

type ServerResponse = DataResponse | ErrorResponse;