原文地址:https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/
今天,我們發布了 TypeScript 1.8 Beta,伴隨着 1.8 版本帶來了大量的變化。歡迎使用並反饋給我們:send us your feedback. 可以從 Visual Studio 2015, NuGet (Compiler 和 MSBuild task), npm, 或者直接從 source 來獲取它.
對於 NPM 用戶,請使用下面的命令來獲取。
> npm install -g typescript@beta
在 VS Code 中,可以下載上面的包,然后使用下面的提示更新 .vscode/settings.json 文件。
"typescript.tsdk": "/some/path/to/node_modules/typescript/lib"
JavaScript in TypeScript Compilation
在 TypeScript 1.8,TypeScript 編譯器可以與 TypeScript 文件一起使用 JavaScript 文件。啟用這個特性,僅僅需要添加一個編譯選項 --allowJs ,或者在 tsconfig.json 配置文件的 compilerOptions 配置節中添加 “allowJS”: true。這是一個非常棒的特性:
轉換 JavaScript 項目到 TypeScript 項目
對於大的項目來說,從 JavaScript 項目轉換到 TypeScript 項目意味着風險。對於具體的項目來說,簡單地將所有的 .js 文件轉換為 .ts 文件會導致大量的編譯錯誤。使得轉換過程很不友好。現在,通過允許 TypeScript 編譯合並編譯 JavaScript 代碼,就可以一次一個文件地轉換,但是仍然允許編譯整個項目。這就使得開發者可以完全掌控轉換過程。
使用第三方的 JavaScript 庫便可更加容易
為了在 TypeScript 項目中使用現有的 JavaScript 庫,開發者不得不使用類型定義 (.d.ts ) 文件,以便 TypeScript 編譯器在編譯的時候知道你在做什么,而在運行時,是 JavaScript 引擎知道你在做什么。直到你需要打包你的外部腳本庫,都沒有問題。到打包這一步,開發者需要第三方的打包器,例如 webpack 或者 browserify 等等。使用 TypeScript 1.8,你只需要簡單地在項目中包含第三方的 JavaScript 庫,編譯器將會處理它,包括 Source Map!
瑣碎的 JavaScript 處理
使用 JavaScript in TypeScript 編譯,TypeScript 編譯器可以使用同樣的方式來處理 JavaScript 文件。這包括 ES3/ES5,不同類型的模塊定義,以及打包。例如,對於使用 TypeScript 編譯器進行 ES6 到 ES5 降級轉換,你只需要使用下面的命令:
> tsc --allowJs --outDir out target_file.js
擴展的 JSX 支持
經過大量的討論,TypeScript 1.8 帶來了一些關鍵的改進來擴展 TSX/JSX 的支持。
定制的 JSX 工廠
伴隨 React ,JSX 語法已經不僅僅用於 React。JSX 工廠允許重寫默認的 React 工廠。伴隨 --jsx react 使用新的編譯標志 --reactNamespace <factory_name> ,TSX 的作者現在可以控制工廠的名稱。
無狀態功能組件
在 React 0.14 中,無狀態的功能組件是一個新概念,已經被大量采用。從 TypeScript 1.8 開始,我們在 TSX 文件中支持無狀態的功能組件。
interface GreeterProps { name: string; } class Greeter extends React.Component<GreeterProps, {}> { render() { return <div>Hello, {this.props.name}</div>; } } //stateless functional component SimpleGreeter let SimpleGreeter = ({name = ‘world‘}) => <div>Hello, {name}</div>;
在 VS2015 中的語法高亮
伴隨着 Visual Studio 中的 TypeScript 1.8 更新,JSX 現在可以獲得代碼分類和着色的改進。
TypeScript Nuget 包
長期以來,我們的一些用戶要求提供官方的 TypeScript Nuget 包,從 1.8 Beta 開始,每個版本我們將會通過 Nuget 分發 TypeScript 編譯器和 MSBuild 任務,包的鏈接如下:
另外,我們還會在 MyGet 提供TypeScript 的每日構建。雖然不提供 build, 但是你可以方便獲取,讓我們知道你的想法。你可在這里找到 build:here.
Chakra Core + TypeScript
我們一直在努力提高 TypeScript 編譯器的性能,在 Chakra Core 發布幾周之后,我們對它進行了測試。下面是每個編譯引擎對不同尺寸的代碼進行編譯的圖表。我們發現 Chakra Core 有着重要的改進。對比上一個版本有 5-20% 的改進,對於 Node 有 10-50% 提高,基於上述原因,我們將在適當的時機切換到 ChakraCore.
還有更多
TypeScript 1.8 還包括許多特性,包括:F-Bounded polymorphism,字符串字面類型等等。如果你希望深入了解這些新特性,請查閱:what’s new page. 而且,我們一直鼓勵瀏覽現有的問題,提交請求,或者直接到 gitter 與我們交流。