有没有一种方法可以在Typescript中创建一个没有类型提示的元组?
如果我简单地这样做
const tuple = [1, 2];
元组number[]
的类型
我能找到的最接近眼线的是
const tuple: [number, number] = [1, 2];
是我错过了什么,还是这是唯一的办法?
发布于 2021-02-05 16:24:22
从TypeScript 3.4开始,您可以简单地在末尾添加as const
。
const tuple = [1, 2] as const;
完全归功于@bela53的答案,它有一个更好的例子,并链接到TS游乐场。
发布于 2018-09-21 21:39:35
使用typescript 3.0,您可以拥有自己的实用函数:
const tuple = <T extends any[]>(...args: T): T => args
并这样使用它:
const tup = tuple(1, 2) // tup type is [number, number]
发布于 2022-02-19 17:21:27
我添加了这个答案以供参考,因为我发现as const
创建只读元组和其他技术拓宽了值的类型是一件痛苦的事情
const tuple = <T extends any[]>(xs: readonly [...T]): T => xs as T;
它有两种使用方式:
const a = tuple(['foo', 10] as const)
a
的类型为["foo", 10]
,不是只读的,并且typeof a[number]
为"foo" | 10
const b = tuple(['foo', 10]);
b
的类型为[string, number]
,typeof b[number]
的类型为string | number
https://stackoverflow.com/questions/49729550
复制相似问题