2017-09-15 417 views
1

我想在我的打字稿代碼中聲明名爲name的新變量。我只有一行代碼。爲什麼我得到錯誤無法在TypeScript中重新聲明塊範圍變量'name'

var name:string = "John"; 

但遇到錯誤

PS D:\TypeScript> tsc test.ts 
C:/Users/Users/AppData/Roaming/npm/node_modules/typescript/lib/lib.d.ts(18568,15): error TS2451: Cannot re 
declare block-scoped variable 'name'. 
test.ts(1,5): error TS2451: Cannot redeclare block-scoped variable 'name'. 

這是什麼錯誤背後的原因是什麼?

cannot redeclare block-scoped variable 'name'

cannot redeclare block-scoped variable 'name'

+0

出現此錯誤的原因是全局範圍中已存在變量'name'。 – Adelin

回答

2

默認情況下,打字稿使用DOM分型,爲全球執行環境,如果你改變你的變數名稱存在於DOM

全局窗口上的name屬性到name1,它不會告訴你這個錯誤。但是,typescript建議使用ES6語法,因此您的IDE可能會建議您使用const/let來代替。

看看這個鏈接 https://github.com/Microsoft/vscode/issues/22436

希望這有助於。

快樂學習

+0

解決方法是將其定義爲:'export var name:string =「John」;' – Adelin

+0

@Adelin謝謝:) –

+0

@Adelin - 你是對的:) – Vatsal

1

要解決這個問題,你可以簡單的有出口沒有出口的語句。換句話說,只需寫

export {}; 

某處在您的文件的頂層。

相關問題