2016-06-01 2 views
1

Я пробовал объявить безрезультатно. Вот простая вещь, которую я хотел бы сделать:Как я могу преодолеть ограничение оператора машинописного текста?

this.scoreStack = [...Array(3).keys()]; 

Видимо, машинопись не поддерживает уничтожение того таким образом. я получаю:

«ключи» Символ не может быть правильно решен, вероятно, она расположена в труднодоступном модуле

Есть ли способ, что я могу определить ключи() метод и получить более это ограничение?

ответ

3

Есть ли способ, что я могу определить ключи() метод и получить за это ограничение

Вы можете объявить это довольно легко:

declare global { 
    interface Array<T> { 
     keys():string[]; 
    } 
} 

const x = [...Array(3).keys()]; 
+0

Это работало безупречно: D –

+0

Ну, это сработало при компиляции, но не после компиляции. Для его работы нам нужно будет экспортировать в ES2015 (ES6), а затем использовать Babel. –

2

Array#keys - новый метод в ES6.

Ваш фрагмент кода компилируется для меня хорошо, но вы должны установить -t es2015 (который отмечен как «экспериментальный»).

+0

Не могли бы вывести меня на ES2015 напрямую ?? Я бы хотел остаться с ES5 –

1

Array(3).keys() возвращают iterator.To используйте оператор с расширением на итераторах и целевую версию es5, используя переключатель --downlevelIteration.

По машинопись documentation

Пользование downlevelIteration переключателя обеспечивает полную поддержку итерируемыми в for..of, распространение и деструктурирующий при ориентации ES5 или ES3.

Смежные вопросы