# TypeScript 入門教程
從 JavaScript 程序員的角度總結(jié)思考,循序漸進的理解 TypeScript。
## 關(guān)于本書
- [在線閱讀](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)
本書是作者在學(xué)習(xí) [TypeScript] 后整理的學(xué)習(xí)筆記。
隨著對 TypeScript 理解的加深和 TypeScript 社區(qū)的發(fā)展,本書也會做出相應(yīng)的更新,歡迎大家 [Star 收藏][GitHub]。
- 發(fā)現(xiàn)文章內(nèi)容有問題,可以直接在頁面下方評論
- 對項目的建議,可以[提交 issue](https://github.com/xcatliu/typescript-tutorial/issues/new) 向作者反饋
- 歡迎直接提交 pull-request 參與貢獻
## 為什么要寫本書
TypeScript 雖然有[官方手冊][Handbook]及其[非官方中文版][中文手冊],但是它每一章都希望能詳盡的描述一個概念,導(dǎo)致前面的章節(jié)就會包含很多后面才會學(xué)習(xí)到的內(nèi)容,而有些本該一開始就了解的基礎(chǔ)知識卻在后面才會涉及。如果是初學(xué)者,可能需要閱讀多次才能理解。所以它更適合用來查閱,而不是學(xué)習(xí)。
與官方手冊不同,本書著重于從 JavaScript 程序員的角度總結(jié)思考,循序漸進的理解 TypeScript,希望能給大家一些幫助和啟示。
由于一些知識點與官方手冊重合度很高,本書會在相應(yīng)章節(jié)推薦直接閱讀中文手冊。
## 關(guān)于 TypeScript
[TypeScript] 是 JavaScript 的一個超集,主要提供了**類型系統(tǒng)**和**對 ES6 的支持**,它由 Microsoft 開發(fā),代碼[開源于 GitHub](https://github.com/Microsoft/TypeScript) 上。
它的第一個版本發(fā)布于 2012 年 10 月,經(jīng)歷了多次更新后,現(xiàn)在已成為前端社區(qū)中不可忽視的力量,不僅在 Microsoft 內(nèi)部得到廣泛運用,而且 Google 的 [Angular2](https://angular.io/) 也使用了 TypeScript 作為開發(fā)語言。
## 適合人群
本書適合以下人群
- 熟悉 JavaScript,至少閱讀過一遍[《JavaScript 高級程序設(shè)計》](https://book.douban.com/subject/10546125/)
- 了解 ES6,推薦閱讀 [ECMAScript 6 入門]
- 了解 Node.js,會用 npm 安裝及使用一些工具
- 想了解 TypeScript 或者想對 TypeScript 有更深的理解
本書**不適合**以下人群
- 沒有系統(tǒng)學(xué)習(xí)過 JavaScript
- 已經(jīng)能夠很熟練的運用 TypeScript
## 評價
> 《TypeScript 入門教程》全面介紹了 TS 強大的類型系統(tǒng),完整而簡潔,示例豐富,比官方文檔更易讀,非常適合作為初學(xué)者學(xué)習(xí) 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)
- [基礎(chǔ)](basics/README.md)
- [原始數(shù)據(jù)類型](basics/primitive-data-types.md)
- [任意值](basics/any.md)
- [類型推論](basics/type-inference.md)
- [聯(lián)合類型](basics/union-types.md)
- [對象的類型——接口](basics/type-of-object-interfaces.md)
- [數(shù)組的類型](basics/type-of-array.md)
- [函數(shù)的類型](basics/type-of-function.md)
- [類型斷言](basics/type-assertion.md)
- [聲明文件](basics/declaration-files.md)
- [內(nèi)置對象](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)
## 版權(quán)許可
本書采用「保持署名—非商用」創(chuàng)意共享 4.0 許可證。
只要保持原作者署名和非商用,您可以自由地閱讀、分享、修改本書。
詳細的法律條文請參見[創(chuàng)意共享](http://creativecommons.org/licenses/by-nc/4.0/)網(wǎng)站。
## 相關(guān)資料
- [TypeScript 官網(wǎng)][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/
