在TypeScript中定义数组类型

克里斯蒂安(CristianTraìna)

我正在为项目使用TypeScript,在Promise.all(...)某些情况下需要使用,它返回许多项目的数组:

Promise.all(
  firstRequest,
  secondRequest,
  ...,
  nthRequest
)
.then((array : [FirstType, SecondType, ..., NthType]) => {
  // do things with response
});

现在,由于类型[FirstType, SecondType, ..., NthType]太长而无法在此处定义,因此我想在其他地方定义它并在那一点上使用它。

所以我尝试了:

export interface ResponseParams {
  [0]: FirstType;
  [1]: SecondType;
  ...
  [n]: NthType;
}

和:

.then((array : ResponseParams) => {
  // do things with response
});

但我收到此错误:

类型“ ResponseParams”不是数组类型。

我该如何外化类型并使代码更整洁?

谢谢

提香·切尔尼科娃·德拉戈米尔

您可以使用类型别名定义此类:

type ResponseParams = [FirstType, SecondType, ..., NthType]

但我要指出的是,array无需显式的类型注释(至少可用于10个Promise)即可推断出的类型:

declare let firstRequest : Promise<{a: number}>
declare let secondRequest : Promise<{b: number}>
declare let nthRequest : Promise<{c: number}>
Promise.all([
    firstRequest,
    secondRequest,
    nthRequest
])
.then((array) => { // array is of type [{a: number;}, {b: number;}, {c: number;}]      
// do things with response
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在TypeScript中定义具有多种类型的数组

在TypeScript中创建数组的强类型数组

TypeScript中对象文字中的类型定义

是否可以在Typescript中定义非空数组类型?

在Typescript中是否可以定义'string类型数组的对象?(类型检查的正确位置?)

TypeScript中带有对象的数组的类型定义

内联TypeScript中的类型定义

无法在Typescript中定义类类型

如何检查Typescript中的数组类型?

在typescript3中将参数定义为特定类型的数组

在TypeScript中为数组定义必填数据类型

在Typescript中定义数组的接口

为什么在TypeScript中,索引访问的数组元素的类型中没有“未定义”?

在TypeScript中定义不同的通用类型的数组

如何定义要从TypeScript中的数组中获取其属性的对象的类型

如何定义在SOAP中定义复杂类型数组的类型

变量定义中的类型的Typescript约定

TypeScript如何知道自定义数组类型中length字段的行为?

TypeScript中数组类型的接口

在 Typescript 中定义动态数组?

如何为 Typescript 中的 Object.values 获取的数组键提供自定义类型?

区分 TypeScript 中的数组类型

如何从 TypeScript 中的对象数组创建类型?

如何在 React hooks-Typescript 中定义通用数组类型?

更改 Typescript 中数组项的类型

typescript 数组处理中的类型不匹配

typescript 数组处理中的类型不匹配

Typescript 中对象类型定义的区别

关于 Typescript 中类型数组的问题