这是我参与「第五届青训营 」伴学笔记创作活动的第5天
为什么是TypeScript?
什么是TypeScript?
TypeScript是一种由微软开 发的自由和开源的编程语言。
TypeScript是JavaScript的超集,他可以编译成纯JavaScript。
TypeScript有着兼容性好、开源的优点。
为什么是TypeScript?
JS 动态类型(在执行时才进行报错)、弱类型语言
TS静态类型(先编译无错误后才运行)、弱类型语言
静态类型
可读性增强: 基于语法解析TSDoc,ide增强
可维护性增强: 在编译阶段暴露大部分错误
多人合作的大型项目中,获得更好的稳定性和开发效率
JS 的超集
包含于兼容所有Js特性,支持共存
支持渐进式引入与升级
怎么用TypeScript?
编程中使用TS避免很多错误
基本语法
**声明函数类型:参数(返回值):类型 **
readonly 只读属性 不可在对象初始化外赋值
?: 可选属性 可有可无
[:]:任意属性 约束所有对象属性必需是该对象的子属性
数组类型:类型 + 方括号表示、泛型表示、元祖表示、接口表示
高级类型
-
联合类型: IA|IB; 联合类型表示一个值可以是几种类型之一
-
交又类型: IA & IB;多种类型叠加到一起成为一种类型,
-
它包含了所需的所有类型的特性
-
类型守卫: 定义一个函数,它的返回值是一个类型谓词,生效范围为子作用域
-
联合类型 + 类型保护 =自动类型推断
-
索引类型: 关键字[keyof],其相当于取值对象中的所有key组成的字符串字面量
-
关键字(in],其相当于取值 字符串字面量 中的一种可能,配合泛型P,即表示每个key关键字(?)],通过设定对象可选选项,即可自动推导出子集类型
-
关键字extends:跟随泛型出现时,表示类型推断,其表达可类比三元表达式如 T === 判断类型 ? 类型A : 类型B
-
关键字 infer:出现在类型推荐中,表示定义类型变量,可以用于指代类型
工程应用
- 使用TSC编译
- 通过使用 TypeScript 来实现编写代码时候的类型提示和约束,从开发过程中减少 BUG 出现的概率,以此提升程序的健壮性和团队的研发效率。