TypeScript 入门| 青训营笔记

53 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第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 出现的概率,以此提升程序的健壮性和团队的研发效率。