我试过宣布无济于事。这是我想做的简单事情:
this.scoreStack = [...Array(3).keys()];
显然,typescript不支持这种方式的解构。 我收到了:
符号“键”无法正确解析,可能它位于 难以接近的模块
有没有办法可以定义keys()方法并克服这个限制?
答案 0 :(得分:3)
有没有办法可以定义keys()方法并克服这个限制
你可以很容易地宣布这个:
declare global {
interface Array<T> {
keys():string[];
}
}
const x = [...Array(3).keys()];
答案 1 :(得分:2)
Array#keys
是ES6中的一种新方法。
您的代码段可以为我编译,但您必须设置-t es2015
(标记为&#34;实验&#34;)。
答案 2 :(得分:1)
Array(3).keys()
返回一个迭代器。要在迭代器上使用spread运算符,使用--downlevelIteration
开关使用目标es5。
根据TypeScript documentation
downlevelIteration
开关的使用为for..of
中的可迭代提供完全支持,在针对ES5或ES3时进行传播和解构。