typescript - 如何从 TypeScript 中的记录类型中提取 varargs 参数?

标签 typescript

我的变量x定义如下:

function foo (a: string, ...nums: number[]): string {
  return a;
}
const x: Parameters<typeof foo>

// Inferred: const x: [string, ...number[]]

现在,我想提取具有正确类型的字符串和数字。 对于字符串,我有:

const sExplicit: Parameters<typeof foo>[0] //easy to specify
const sInferred = x[0]                     //type inferred correctly

我想声明保存所有数字的变量。我该怎么做?

我尝试了以下方法:

const numsExplicit: ??? Howto specify the type
const numsInferred = x.slice(1) // incorrectly inferred as (string | number)[]

最佳答案

查找类型为 number | string仅。

我会自己添加数组:

function foo (a: string, ...nums: number[]): string {
 return a;
}
declare const x: Parameters<typeof foo>[1][];

关于typescript - 如何从 TypeScript 中的记录类型中提取 varargs 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62948624/

相关文章:

javascript - 类型 'NodeListOf<HTMLLIElement>' 不可分配给类型 'Element[]'

excel - 如何清除 Office 脚本中的表格样式?

TypeScript 函数参数泛型

javascript - 简单的 React 计数器不起作用,console.log 也不能使用State 变量吗?

javascript - Node中并行/异步的多个分页GET API调用

angular - mat-date-range-input 不是已知元素 [Angular Material ]

javascript - native 元素的大小为零

javascript - 使用带回调的 Promise 函数映射 JSON 有效负载的对象

typescript - 类型 'T' 不满足约束 'string | number | symbol' 。类型 'T' 不可分配给类型 'symbol'

javascript - 删除 tslib 作为生产依赖项