網站搜尋

Typescript 介面,其中「id」必須是數字,其他屬性必須是字串


我需要為從伺服器來的資料定義一個介面,其中 id 是數字,但其他所有屬性都是字串。

我試過:

interface AnyChartsData {
  id: number;
  [key: string]: string;
}

但是我得到這個錯誤:

[ts] 型別為 'number' 的屬性 'id' 無法指派給字串索引型別 'string'。 [2411]

我該如何正確地定義這個介面?

答案#1

你必須使用聯合類型,因為 id 是數字而不是字串,例如。

interface AnyChartsData {
    id: number;
    [key: string]: string | number;
}