繁体   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