花了一周时间,把ts的基础知识学明白了。
现在,谈谈感受。
1.这门语言诞生背景
js没有编译器,没法在静态(编译时的状态,就叫静态,运行时状态,叫动态)对类型检查。只能在运行时才能检查类型对错。造成问题是,编码不能自动提示(为什么呢?),运行时才报错,不利于大项目的质量控制。相对来说,强类型,编译型语言,就非常安全,因为编译器是很强大的助手,能发现问题。比如,java,c#,c++都是如此。其实,动态语言都有js的问题。
2.ts是怎么解决的
微软公司创建了ts语言,编写ts编译器;程序员负责写ts文件,用ts编译器(tsc)编译ts文件,生成js文件,支持es5, es6所有版本;
ts是静态语言,js是动态语言。ts号称是js超集;c++是c的超集,所以,c++可以直接用c语言语法书写;ts也可以直接用js语法写代码,编译不报错。
3.ts相对于js增加了什么东西
- 创造了新的基础类型
- 创造了接口概念,这个接口很另类,如果学过c#,肯定会懵逼,因为,跟c#区别挺大。它的设计思想是基于鸭子类型。就是说,签名相同的类,或者接口,就可以认为是一个东西。不需要继承特定的接口和类。
- 创造了类
- 创造了字面量类型,数字类型。这两种类型组合,可以实现并类型,交类型。
- 创造了枚举类型
- 创造了泛型
语法和特性都是从c#山寨过来的优秀特性,让ts成为,仅次于java,第三像c#的语言。
对.net 程序员太友好了,越看越顺眼。
ts可以用于后台开发,也可以用在前台。
vuejs,reactjs都已经支持ts了,就是说,用ts重写源代码。
听说,国内公司,也开始普及ts开发了,具体情况不了解。
4.关于接口
- ts的接口很重要,能定义构造器,属性,方法,索引类型(就是数组),类
- 接口可以继承类
- 接口的定义格式很难理解,很烧脑。
5.gulp开发
推荐用gulp组织代码,构建代码,开发项目
6.参考资料
- https://www.typescripttutorial.net/typescript-tutorial
- https://www.typescriptlang.org/docs/
7.学习工具
官网的文档,在例子代码区域悬停,右下角可以看到try链接,点开,就可以进入在线编辑演示工具,编写代码,可以看到执行结果,生成js文件源码。
极度推荐这个工具,对理解概念,十分有用,多敲敲,多练练,很快就能理解。
8.目前疑问
- 如何调用其他js模块
- 如何用gulp开发一个项目