所以...我今天一直在使用typescript,並使用typecript類,例子類(實際上是拋出錯誤的那個,僅僅是因爲它是輸出的js文件中的第一個)Typescript將「類」標識符輸出到javascript
class AuthRequestDTO {
grant_type: string;
refresh_token: string;
username: string;
password: string;
client_id: string;
use_refresh: boolean;
}
這是一個.ts文件,以及項目中的許多其他.ts文件。該項目設置爲將所有ts文件編譯成1個輸出js文件,這工作正常。現在解決這個問題;當我嘗試使用chrome,firefox或IE瀏覽我的網站時,它們都會拋出一個異常,說「類是保留的標識符」。但是Typescript文件中的類標識符是完全有效的。爲什麼typescript將class關鍵字輸出到結果.js文件中? (我明白,類是JavaScript中的保留標識符,這不是我關心的問題,我擔心爲什麼Visual Studio 2015s TS Compiler會將「class」關鍵字放入輸出中?)有沒有我錯過的設置,或者是什麼Visual Studio今天一直在吸菸?
是我到目前爲止已經試過用什麼IM:
我在運行Visual Studio 2015年的企業,解決方案是ES6,TS構建選項爲單個.js文件。如果您有任何使用這些庫的情況,我也會使用AngularJs類庫和Typings和JQuery,這是一個促成因素。我還清理並重建了項目和整個解決方案,並重新啓動了我的開發機器。我也關閉了「結合JavaScript輸出到文件」設置,看看它是不是古怪的,我在單獨的.js文件中遇到同樣的問題,所以不是這樣。強制「使用嚴格」也沒有幫助,這是一個牽強的嘗試,因爲這是一個JavaScript命令,而不是一個打字稿,但我想我會試試它。
你在'Project Properties> TypeScript Build'中爲ECMAScript版本選擇了什麼?因爲如果它是'EMCAScript 6','class'是一個有效的標識符,但不被(大多數)瀏覽器支持。如果你想讓它在瀏覽器中運行,你需要選擇'ECMAScript 5'作爲目標 – CodingIntrigue
該解決方案是爲ES 6設置的。這是否意味着ES6對於目前大多數瀏覽器來說太過分了? – Skintkingle
正確。您可以檢查ES6瀏覽器兼容性[這裏](https://kangax.github.io/compat-table/es6/)。 – CodingIntrigue