# TypeScript 入門教程
從 JavaScript 程序員的角度總結思考,循序漸進的理解 TypeScript。
## 關于本書
- [在線閱讀](https://ts.xcatliu.com/)(部署在 [GitBook](https://www.gitbook.com/book/xcatliu/typescript-tutorial/details) 上,可能需要翻墻)
- [在線閱讀(GitHub 版)](https://github.com/xcatliu/typescript-tutorial/blob/master/README.md)
- [GitHub 地址][GitHub]
- 作者:[xcatliu](https://github.com/xcatliu/)
- 官方 QQ 群:[加入 QQ 群 767142358](https://jq.qq.com/?_wv=1027&k=5nkkFCl)
本書是作者在學習 [TypeScript] 后整理的學習筆記。
隨著對 TypeScript 理解的加深和 TypeScript 社區的發展,本書也會做出相應的更新,歡迎大家 [Star 收藏][GitHub]。
- 發現文章內容有問題,可以直接在頁面下方評論
- 對項目的建議,可以[提交 issue](https://github.com/xcatliu/typescript-tutorial/issues/new) 向作者反饋
- 歡迎直接提交 pull-request 參與貢獻
## 為什么要寫本書
TypeScript 雖然有[官方手冊][Handbook]及其[非官方中文版][中文手冊],但是它每一章都希望能詳盡的描述一個概念,導致前面的章節就會包含很多后面才會學習到的內容,而有些本該一開始就了解的基礎知識卻在后面才會涉及。如果是初學者,可能需要閱讀多次才能理解。所以它更適合用來查閱,而不是學習。
與官方手冊不同,本書著重于從 JavaScript 程序員的角度總結思考,循序漸進的理解 TypeScript,希望能給大家一些幫助和啟示。
由于一些知識點與官方手冊重合度很高,本書會在相應章節推薦直接閱讀中文手冊。
## 關于 TypeScript
[TypeScript] 是 JavaScript 的一個超集,主要提供了**類型系統**和**對 ES6 的支持**,它由 Microsoft 開發,代碼[開源于 GitHub](https://github.com/Microsoft/TypeScript) 上。
它的第一個版本發布于 2012 年 10 月,經歷了多次更新后,現在已成為前端社區中不可忽視的力量,不僅在 Microsoft 內部得到廣泛運用,而且 Google 的 [Angular2](https://angular.io/) 也使用了 TypeScript 作為開發語言。
## 適合人群
本書適合以下人群
- 熟悉 JavaScript,至少閱讀過一遍[《JavaScript 高級程序設計》](https://book.douban.com/subject/10546125/)
- 了解 ES6,推薦閱讀 [ECMAScript 6 入門]
- 了解 Node.js,會用 npm 安裝及使用一些工具
- 想了解 TypeScript 或者想對 TypeScript 有更深的理解
本書**不適合**以下人群
- 沒有系統學習過 JavaScript
- 已經能夠很熟練的運用 TypeScript
## 評價
> 《TypeScript 入門教程》全面介紹了 TS 強大的類型系統,完整而簡潔,示例豐富,比官方文檔更易讀,非常適合作為初學者學習 TS 的第一本書。
>
> —— [阮一峰](https://github.com/ruanyf)
## 目錄
- [前言](README.md)
- [簡介](introduction/README.md)
- [什么是 TypeScript](introduction/what-is-typescript.md)
- [安裝 TypeScript](introduction/get-typescript.md)
- [Hello TypeScript](introduction/hello-typescript.md)
- [基礎](basics/README.md)
- [原始數據類型](basics/primitive-data-types.md)
- [任意值](basics/any.md)
- [類型推論](basics/type-inference.md)
- [聯合類型](basics/union-types.md)
- [對象的類型——接口](basics/type-of-object-interfaces.md)
- [數組的類型](basics/type-of-array.md)
- [函數的類型](basics/type-of-function.md)
- [類型斷言](basics/type-assertion.md)
- [聲明文件](basics/declaration-files.md)
- [內置對象](basics/built-in-objects.md)
- [進階](advanced/README.md)
- [類型別名](advanced/type-aliases.md)
- [字符串字面量類型](advanced/string-literal-types.md)
- [元組](advanced/tuple.md)
- [枚舉](advanced/enum.md)
- [類](advanced/class.md)
- [類與接口](advanced/class-and-interfaces.md)
- [泛型](advanced/generics.md)
- [聲明合并](advanced/declaration-merging.md)
- [擴展閱讀](advanced/further-reading.md)
- [工程](engineering/README.md)
- [代碼檢查](engineering/lint.md)
- [代碼檢查](engineering/compiler-options.md)
- [感謝](thanks/README.md)
## 版權許可
本書采用「保持署名—非商用」創意共享 4.0 許可證。
只要保持原作者署名和非商用,您可以自由地閱讀、分享、修改本書。
詳細的法律條文請參見[創意共享](http://creativecommons.org/licenses/by-nc/4.0/)網站。
## 相關資料
- [TypeScript 官網][TypeScript]
- [Handbook]([中文版][中文手冊])
- [ECMAScript 6 入門]
---
- [下一章:簡介](introduction/README.md)
[GitHub]: https://github.com/xcatliu/typescript-tutorial
[TypeScript]: http://www.typescriptlang.org/
[Handbook]: http://www.typescriptlang.org/docs/handbook/basic-types.html
[中文手冊]: https://zhongsp.gitbook.io/typescript-handbook/
[ECMAScript 6 入門]: http://es6.ruanyifeng.com/