具有任意最小长度 N 的 TypeScript 数组,可以很大

标签 typescript types typescript-typings

我想创建一个 type,其中数组的最小长度为 N。我看过这个 TypeScript array with minimum length ,但是当 N 很大时,我不想写出从 0 到 N 的类型,例如:

type ArrayTwoOrMore<T> = {
    0: T
    1: T
    ...
    N: T
}

我想知道是否有更简洁的方法来做到这一点?

最佳答案

你不能做任意大小的元组,但在 4.0 中你将能够创建一个像 Typle5Tuple10 这样的类型并将它传播多次以获得所需类型更快:

type Tuple5<T> = [T, T, T, T, T]
type Tuple10<T> = [...Tuple5<T>, ...Tuple5<T>]
type Tuple50<T> = [...Tuple10<T>, ...Tuple10<T>, ...Tuple10<T>, ...Tuple10<T>, ...Tuple10<T>]
type Tuple100<T> = [...Tuple50<T>, ...Tuple50<T>]

let a: Tuple100<number> = [] // Source has 0 element(s) but target requires 100

Playground Link

不过,我会质疑创建大小为 100 的元组是否明智。

注意:4.0 仍处于测试阶段,应于 2020 年 8 月发布

关于具有任意最小长度 N 的 TypeScript 数组,可以很大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62535983/

相关文章:

java - 如何在 Eclipse Java 调试器中将 char 数组显示为十六进制字节数组或无符号十进制数?

typescript - 为外部 js nodejs 包编写 typescript 声明文件,没有类型信息

typescript - vscode typescript : 'Add all missing imports' shortcut

html - float 标签在 Firefox 上不起作用

typescript toString ('hex' ) 不工作

angular - 重复标识符错误 - 使用 Angular 2 和 Typescript 2 的 Webpack 2 配置

typescript :从通用接口(interface)中省略属性

javascript - 使用 ionic 根据输入文本计算价格

types - 一种类型被强制转换为另一种类型,是否可以通过一种方法来确定接收者的类型?

function - Julia 中的函数类型