2017-11-28 180 views
2

こんにちは私はタイスクリプトを学んでいます。ブロックスコープの変数 'name'を再宣言できません。TypeScript

私のコードにあります。

var name:string="Hello world"; 
console.log(name); 

コンパイル時にこのエラーが発生します。

error TS2451: Cannot redeclare block-scoped variable 'name'. 
index.ts(4,5): error TS2451: Cannot redeclare block-scoped variable 'name'. 

なぜこのエラーが表示されるのですか?

+0

どの文脈では? – Pac0

+1

このエラーは、スコープ内に 'name'という変数がすでにあることを示唆しています。 – phuzi

答えて

1

interface Window extends EventTarget, WindowTimers, WindowSessionStorage, WindowLocalStorage, WindowConsole, GlobalEventHandlers, IDBEnvironment, WindowBase64, GlobalFetch { 
    ... 
    name: string; 
    ... 
} 

https://github.com/Microsoft/TypeScript/blob/master/lib/lib.d.ts#L17226

nameプロパティは、 windowオブジェクトで定義されています

あなたは変数の新しい名前を考え出す必要があります:あなたは、このコードを実行しようとしている

var myname = "Hello world"; 
console.log(myname); 
+0

Thanx Brother !!!私を助けてくれる:-) –

0

変数nameは、同じコードブロックのどこかで既に宣言されています。それは許可されていません。

これはまさにエラーメッセージの意味です。

詳細を見るためにあなたは、グローバルスコープでこの特定の変数を宣言しようとした、とここでnameは既にいくつかの技術的な理由のために定義される、ということで原因:https://github.com/Microsoft/TypeScript/issues/9850

(感謝@betadeveloper

+0

いいえブラウザではグローバルな_window.name_とtypescriptで_const_として宣言することにしました。この問題を参照してください。https://github.com/Microsoft/TypeScript/issues/9850 –

+0

洞察をいただきありがとうございます私はこの特定のケースで原因を追加する答えを編集しました。 – Pac0

+0

@ Pac0 Thanx Brother :-) –

関連する問題