簡體   English   中英

在 Typescript 中,如果事先不知道對象的屬性,您如何鍵入它?

[英]In Typescript, how do you type an object when it's properties are not know beforehand?

我對打字稿比較陌生,所以如果我遺漏了一些明顯的東西,請原諒我。 我在 ReactJS 中使用打字稿,我正在嘗試為 API 響應定義類型。

API 文檔說有一個meta屬性,它是一個對象,但它的鍵/值無法預測。 IE

{
  ...
  meta: {
    property1: value1 //(can be string/number/array)
    property2: value2
    .
    .
    .
    propertyN: valueN
  }
}

我如何有效地輸入? 當我嘗試{ meta: object }時,我的 eslint 抱怨所以我認為這不好。

由於您不知道它將包含什么,除了它將成為一個對象之外,您可以使用:

{ [key: string]: unknown };

它並不完全有效- 您必須對每個屬性值進行進一步的顯式類型縮小,但至少它是類型安全的(與any不同)。

如果您知道它can be string/number/array ,只需像這樣定義它:

type MetaType = { [key: string]: string | number | any[] };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM