d.ts
dt〜whatwg-fetchのファイルには、次の宣言が含まれています。
declare class Headers {
// other code ommited
[Symbol.iterator](): IterableIterator<[string, string]>;
}
回避策のインターフェイスを作成しようとしましたが、成功しませんでした。次の作業はありません。何になりますか?
interface Symbol {}
interface Symbol<T> {}
interface Symbol {
iterator: IterableIterator<[string, string]>
}
interface Symbol<T> {
iterator: IterableIterator<[string, string]>
}
編集
見てきました TypeScriptは名前 'IterableIterator'を見つけることができません そして推奨はes6をターゲットにすることです。それは必要ですか?
http://www.typescriptlang.org/docs/handbook/iterators-and-generators.html
Symbol
はES6
の新機能であるため、コンパイラーをそのターゲットにする必要があります。
これを行うには、 コンパイラオプション のターゲットが"es6"
であることを指定します。
Symbol
の定義は、 lib.es6.d.ts にあります( デフォルトのlib.d.ts にはありません)
その部分を自分でポリフィルすることができます。必要な部分をlib.es6.d.ts
ファイルからコピーし、それを独自のファイルに入れて参照するだけです。
あなたが投稿したコードに必要なものをコピーしました。それは この遊び場 にあります。
実際に必要なものよりも多い可能性があるので、それを試してみてください。
私がそれを理解するのを助けた何かは、tsconfig.jsonに次の設定を追加することでした:
"lib": [
"es6",
"dom"
]
その後、Promise宣言が重複しているという別のエラーが発生しましたが、ポリフィル型の定義を削除して正常に機能しました。 whatwg-fetchは実際にはES6シンボルを必要としないようです。コードは、ES5フォールバックを使用できます: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/1129