学习TypeScript.
Go to file
2019-04-05 15:55:01 +08:00
images Initial push. 2019-03-27 08:31:28 +08:00
src Content added. 2019-03-29 17:08:43 +08:00
_config.yml Set theme jekyll-theme-slate 2019-04-03 17:38:48 +08:00
.gitignore put dist/* into .gitignore. 2019-04-04 17:56:00 +08:00
00_tsconfig-json.md Finished tsconfig-json.md 2019-04-03 17:26:54 +08:00
01_basic_data_types.md Content added. 2019-04-01 09:48:34 +08:00
02_variables_declaration.md Initial push. 2019-03-27 08:31:28 +08:00
03_classes.md Initial push. 2019-03-27 08:31:28 +08:00
04_interfaces.md Initial push. 2019-03-27 08:31:28 +08:00
05_functions.md Initial push. 2019-03-27 08:31:28 +08:00
06_generics.md Initial push. 2019-03-27 08:31:28 +08:00
07_enums.md Contents added. 2019-03-27 11:20:25 +08:00
08_type_inference.md Contents added. 2019-03-27 11:20:25 +08:00
09_type_compatibility.md test 2019-04-03 17:54:30 +08:00
10_advanced_types.md Contents added. 2019-03-27 11:20:25 +08:00
11_symbols.md Contents added. 2019-03-27 11:20:25 +08:00
12_iterators_and_generators.md Contents added. 2019-03-27 11:20:25 +08:00
13_modules.md Contents added. 2019-03-27 11:20:25 +08:00
14_namespaces.md Contents added. 2019-03-27 11:20:25 +08:00
15_modules_and_namespaces.md Contents added. 2019-03-27 11:20:25 +08:00
16_module_resolution.md Contents added. 2019-03-27 11:20:25 +08:00
17_declaration_merging.md Contents added. 2019-03-27 11:20:25 +08:00
18_jsx.md Contents added. 2019-03-27 11:20:25 +08:00
19_decorators.md Finished chapter 19. 2019-03-28 17:15:58 +08:00
20_mixins.md Finished 20_mixins.md. 2019-03-29 10:36:00 +08:00
21_triple-slash_directives.md Fix md filename. 2019-03-29 17:37:20 +08:00
git-push.sh Initial push. 2019-03-27 08:31:28 +08:00
gulpfile.js Test links in markdown. 2019-03-27 16:51:18 +08:00
package-lock.json Updated gulp and other packages. 2019-04-03 14:55:52 +08:00
package.json Updated typescript from 2 to 3. 2019-04-03 14:54:45 +08:00
README.md Changed. 2019-04-05 15:55:01 +08:00
SUMMARY.md Changed. 2019-04-05 15:55:01 +08:00
tsconfig.json Finished chapter 19. 2019-03-28 17:15:58 +08:00

TypeScript 学习记录

你可以直接在 xfoss.com 阅读本书:ts.xfoss.com。xfoss.com 还有其他书籍:

你可以在 https://github.com/gnu4cn/ts-learnings 上 fork 本项目,并提交你的修正。

ECMAScript 2015 (ES6)已经正式发布所有浏览器均已支持同时许多项目如Angular, Ionic, Electron框架等均已在往ES6迁移。故需要学习掌握这一新版的Javascript。

变更日志

  • 2019-3-27, 重新整理package.jsontsconfig.jsongulpfile.js文件,让.gitignore生效,令到项目大小得以缩小

ES6与 Javascript

ES6仍然是Javascript, 只不过是在我们已经熟悉的Javascript上加入了一些新的东西。使得Javascript更为强大可以应对大型程序的要求。

ES6的实现

ES6只是新一代Javascript的规范几大公司、各个浏览器引擎等都有具体的实现。微软的TypeScript、CoffeeScript等都是ES6的具体实现。

参考链接:

鉴于Angular与Ionic都是使用了微软的TypeScript, 因此在学习ES6时将学习TypeScript这一实现。

关于TypeScript

TypeScript是Javascript的超集有着以下优势

  • 可选的静态类型(关键就是这里的“可选”, Optional static typing, the key here is optional
  • 类型推理此特性在并没有使用到类型的情况下带来那些类型的诸多益处Type Inference, which gives some of the benefits of types, without actually using them
  • 可在主流浏览器尚未对ES6/ES7提供支持之前通过TypeScript用上ES6及ES7的特性
  • TypeScript有着将程序向下编译到所有浏览器都支持的某个Javascript版本的能力
  • IntelliSense提供了极好的工具支持

因为TypeScript带给如你一样的开发者这些不错的特性及巨大优势Ionic是以TypeScript编写的而不是ES6这里就表明了TypeScript并不是ES6)。

关于可选的静态类型

可能TypeScript最能打动人心的就是其所提供到的可选静态类型系统了。将给变量、函数、属性等加上类型。这将帮到编译器且在app尚未运行时就给出有关代码中任何潜在错误的警告。在使用到库及框架时类型也有帮助这是由于类型可令到开发者准确知悉那些APIs期望何种类型的数据。而关于类型系统你首先要记住的是它是可选的。TypeScript并不强制要求开发者在他们不想添加的上必须添加类型。但随着应用变得越来越大、越来越复杂类型确实可以提供到一些很棒的优势。

关于 IntelliSense:

一种 Microsoft 技术,这种技术通过在光标悬停在函数上时显示类定义和注释,从而让您可以分析源代码。当您在 IDE 中键入函数名时IntelliSense 还可以完成这些名称。

TypeScript的一大优势就是其代码补全与IntelliSense了。IntelliSense在敲入代码时提供有用的提示。因为Ionic本身就是用TypeScript写就的代码编辑器就可以展示出所有可用的方法以及这些方法所期望的参数。当今所有最好的集成开发环境比如VScode、Atom、Sublime text甚至那些诸如Vim/Neovim等命令行的编辑器都有对代码补全的支持。

TypeScript的许多优势带来了一种好得多的app开发体验。因此Ionic将全力压注到TypeScript上而不提供ES6的启动器。

摘录自:

TypeScript的优势

本教程特色

针对新特性的详细讨论并与与实例代码结合。TypeScript是在Javascript的基础上引入了诸多新特性本教程将逐一讨论这些新特性并同时编写相应代码加以验证。

捐助此教程

支付宝:

Alipay: laxer@gmail.com

Bitcoin:

bitcoin: