是什么
- 是js类型的超集,扩展js的语法,支持js,ES6的写法,支持面向对象编程的概念(类,接口,继承,泛型等)
- 静态类型检查的语言,提供类型注解,在代码编译阶段就可以检查出数据类型的错误,在编译阶段就编译成js来运行
特性
1. 类型批注/类型检查:
- 编译时
- 基本类型的批注是number,boolean,string,弱或动态类型的结构是any类型
2. 类型推断: - 初始化变量
- 设置默认参数
- 决定函数返回值
- 没有批注的变量
- 缺乏声明而不能推断出类型,那么它的类型被视作默认的动态any类型
3. 类型擦除: - 类型批注和接口在运行时用工具擦除
4 . 接口: - !!!用接口定义对象类型
interface Person { name: string; age: number } let tom: Person = { name: 'lihua', age: '' }
- 枚举: 取值限定在一定范围
- Mixin: 可以接受任意类型的值
- 泛型:写代码时使用一些以后再指定类型