【发布时间】:2023-02-22 01:12:23
【问题描述】:
我有一个服务器响应,它是 IFoo 元素的数组,但最后一个是 IBar 类型。
我想删除最后一个元素并将其分配给一个新变量。我该怎么做?
我尝试将响应键入为元组,但 TypeScript 不会像我预期的那样拆分元素的类型。
const response = [...IFoo[], IBar];
const lastElement = response.pop()
// typeof response returns [...IFoo[], IBar]
// typeof lastElement returns IFoo | IBar | undefined
//expected result:
// typeof response returns IFoo[]
// typeof lastElement returns IBar
【问题讨论】:
-
谈到服务器响应,TypeScript 使用静态数据(已知数据)。我不认为 TypeScript 可以从运行时可用的数据动态推断类型。您能分享一下您是如何确定返回
[...IFoo[], IBar]的响应类型的吗?因为我假设 TypeScript 不会知道这些信息,除非你“以某种方式”告诉它会发生什么 -
我不认为你可以改变服务器响应?这将是很多如果它返回
[IBar, ...IFoo[]]会更好。或者你被你得到的东西困住了?
标签: typescript tuples typescript-typings