我正在try 创建一个返回从0到n的数字数组的函数,但我希望返回的类型也是已知的静态array.
const makeFoo = (n: number) => [...Array(n).keys()];
const foo1 = [0, 1, 2] as const; // readonly [0, 1, 2]
const foo2 = makeFoo(3); // number[]
console.log(foo1); // [0, 1, 2]
console.log(foo2); // [0, 1, 2]
虽然foo1
和foo2
在运行时具有相同的值,但它们的类型不同.
如何将makeFoo
‘S返回类型定义为类似foo1
?(readonly [0, 1, ... n]
其中n
也是静态已知的,例如makeFoo = <T extends number>(n: T) => ...
)