TypeScript 1.8 Beta版新增JavaScript集成、無狀態函數式組件等功能
TypeScript是微軟開源的一個JavaScript超集。近日, TypeScript 1.8 Beta版發布 ,帶來了許多新的語言特性和工具增強。
TypeScript 1.8的編譯器現在可以將JavaScript同TypeScript文件一起編譯了。這可能是該版本所帶來的影響最大的特性。該特性可以通過命令行標識 --allowJS
啟用,使開發人員可以在TypeScript項目中無縫地使用JavaScript代碼,而不必立即轉換所有的JavaScript代碼,這項可能導致編譯錯誤的任務現在可以按照開發人員喜歡的節奏進行。此外,可以編譯JavaScript代碼意味著可以在TypeScript編譯中包含第三方庫,所以就不需要另外進行打包將它們捆綁到一起。
無狀態函數式組件是一種源于 React 項目的理念,TypeScript 1.8 Beta版也引入了這一特性,其主要的吸引力在于它們是無狀態的輕量級組件,很容易組合。下面是一個TypeScript無狀態函數式組件的例子:
let SimpleGreeter = ({name = ‘world‘}) => <div>Hello, {name}</div>;
上述代碼同下面的代碼等效:
interface GreeterProps {
name: string;
}
class Greeter extends React.Component<GreeterProps, {}> {
render() {
return <div>Hello, {this.props.name}</div>;
}
}</code></pre>
無狀態函數式組件需要 最新版的react.d.ts 。
TypeScript 1.8 Beta版還新增對“F-限定多態( F-bounded polymorphism )”的支持,這使得一個類型參數可以受同一參數列表中的引用類型參數約束。從下面的代碼中可以看到,類型 T
受同一參數列表中的 U
約束,現在,這在TypeScript中也是合法的了:
function assign<T extends U, U>(target: T, source: U): T {
for (let id in source) {
target[id] = source[id];
}
return target;
}
控制流分析是TypeScript中另一項受人歡迎的特性增強,它有助于捕獲一些常見錯誤,比如不可達代碼、未使用標簽、隱式返回等等。
TypeScript 1.8 Beta版還包含許多其他新特性,比如簡化的React props
類型管理、字符串常值類型、經過改進的union/intersection類型推斷等。要了解更多信息,請查看 官方公告 。
上面已經提到, TypeScript 是JavaScript的一個嚴格的超集,它額外增加了靜態類型,并支持基于類的面向對象編程。讀者可以從 Visual Studio 2015 、 NuGet 和 npm 獲取TypeScript 1.8 Beta版。
查看英文原文: TypeScript 1.8 Beta Adds Integration with JavaScript, Stateless Functional Components and More
來自: http://www.infoq.com/cn/news/2016/02/announcing-typescript-18