我需要向REST API发送请求,在该API中,标头只能以字符串作为索引,以字符串或数字作为值[string, string | number],其中一个标头的数组形式如下所示.现在我有一个问题,我当然不想一次只发送一个定制的头,一个数组可能像这样[['value1', 10], ['value2', 'value'].像这样重复的模式,我该如何进行类型判断呢?

我已经try 过在函数中定义它,该函数调用API,如following functionname(header : [[string, string | number]]),这只会让我添加一个自定义头,然后给我一个类型错误.我还try 了一些其他的东西,通过定义它作为自己的类型,如下面的type headerFormat = [[string, string | number], headerFormat[]],但也没有工作.

推荐答案

如果您想要一个包含0个或更多元素的数组,其中每个元素都是一个[string, string | number]元组,则可以这样做:

type HeaderFormat = [string, string | number][]

如果希望要求外部数组必须至少有一个元素,可以这样做:

type HeaderFormat = [[string, string | number], ...[string, string | number][]]

同样的东西,但可能更容易读懂:

type SingleHeader = [string, string | number]
type HeaderFormat = [SingleHeader, ...SingleHeader[]]

Typescript相关问答推荐

我应该使用什么类型的React表单onsubmit事件?

在Angular中注入多个BrowserModules,但在我的代码中只有一个

向NextAuth会话添加除名称、图像和ID之外的更多详细信息

如何以Angular 形式显示验证错误消息

TypeScrip-将<;A、B、C和>之一转换为联合A|B|C

类型,其中一条记录为字符串,其他记录为指定的

对未到达受保护路由的路由环境做出react

用于验证字符串变量的接口成员

以Angular 自定义快捷菜单

类型TTextKey不能用于索引类型 ;TOption

如何 bootstrap TS编译器为类型化属性`T`推断正确的类型?

APP_INITIALIZER在继续到其他Provider 之前未解析promise

在Mac和Windows上运行的Web应用程序出现这种对齐差异的原因是什么?(ReactNative)

为什么我在这个重载函数中需要`as any`?

在Cypress中,您能找到表格中具有特定文本的第一行吗?

类型脚本-处理值或返回值的函数

必需的输入()参数仍然发出&没有初始值设定项&q;错误

Typescript .根据枚举输入参数返回不同的对象类型

如何向我的自定义样式组件声明 custom.d.ts ?

广义泛型类型不加载抽象类型上下文