1

TypeScript可以全局定位不同版本的Javascript - 您可以在轉換ES3,ES5或ES6之間進行切換。使用TypeScript針對不同的Javascript版本

我們必須支持IE,所以ES3是我們最低的共同標準。

然而,好的瀏覽器(如Chrome)已經支持ES6,並且能夠運行優化的小得多的ES6代碼。

因此,從相同的TypeScript源我想ES3服務到IE和ES6到Chrome。

  • 有沒有一種方法,使打字稿transpile多個JS文件(如可能和*.es3*.es6類似的東西),所以我們可以挑來服務哪個版本? (理想情況下在VS 2015中)

  • 或者在C#中,我可以訪問TypeScript轉譯程序以在運行時完成該步驟嗎?

+0

您是否使用了像Gulp,Webpack甚至Grunt這樣的JS構建工具?如果是這樣,您可以簡單地將您的TS構建分解爲一個函數,並使用不同的目標運行兩次。 – ssube

+0

@ssube - 不幸的是,這是一個從舊版本升級的C#VS 2015項目文件。 VS似乎在.csproj文件中使用硬編碼設置,而不是像VS Code那樣的tsconfig.json文件。 – Keith

回答

2

如何使用不同的tsconfig.json文件?

例如,像:

- root 
    - ts-source 
    - js-es3 
     - tsconfig.json 
     - js 
    - js-es5 
     - tsconfig.json 
     - js 

然後root/js-es3/tsconfig.json

{ 
    "compilerOptions": { 
     "target": "ES3", 
     "outDir": "js", 
     "rootDir": "../ts-srouce" 
    } 
} 

而且root/js-es5/tsconfig.json

{ 
    "compilerOptions": { 
     "target": "ES5", 
     "outDir": "js", 
     "rootDir": "../ts-srouce" 
    } 
} 

我不是一個Visual Studio用戶,所以我不要不知道如何支持不同的tsconfig.json文件,但即使你不能,那麼你可以使用tsc來編譯它。

+0

我認爲這應該是大多數IDE /編輯器的答案,但不幸的是VS2015不支持多個tsconfig文件,完全忽略'rootDir'並且有一個錯誤,其中'outDir'獲取輸出的副本,但是就地複製也被創建。 – Keith

+0

@Keith你確定嗎?我不是一個VS挺挺的人,但是根據[這張票](https://github.com/Microsoft/TypeScript/issues/4714),它似乎被支持。 –

+0

是的,我花了很長時間纔回復,因爲我正在進行廣泛的測試。我認爲這是[VS2015中的錯誤](https://connect.microsoft.com/VisualStudio/feedback/details/3101865),而不是TypeScript中的錯誤。免費VS代碼可以很好地處理多個tsconfig文件,但是帶有.csproj的全功能VS2015目前很難實現。也許他們會在Update 4中解決它。 – Keith

相關問題