2016-06-01 6 views
1

私は無駄を宣言しようとしました。ここで私が何をしたいのですが、簡単なものです:どうやらtypescriptの普及担当者の制限をどのように克服できますか?

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

、typescriptですが、このように構造化代入をサポートしていません。 は私が受け取る:

シンボル「キー」が適切に解決できない、おそらくそれは アクセスできないモジュール

に位置している私は、キー()メソッドを定義して乗り越えることができる方法がありますこの制限はありますか?

答えて

3

Iキー()メソッドを定義することができる方法はありますし、この制限上

を取得するあなたは非常に簡単にこれを宣言することができます。

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

をiterator.Toを返すArray(3).keys()イテレータとターゲットes5のスプレッド演算子を使用するには、--downlevelIterationスイッチを使用します。 ES5又はES3を標的とする場合downlevelIterationスイッチの

documentation活字体当たりとしての使用は、for..ofの広がりおよび非構造をイテレート可能オブジェクトを完全にサポートを提供します。

関連する問題