这是我参与「第四届青训营 」笔记创作活动的第2天
这篇文章是青训营-前端《TypeScript 入门》的课堂笔记。
基本语法
数据类型
typescript的数据类型如下:
- boolean
- number
- string
- array
- tuple
- enum
- any
- null 和 undefined
- void
- never
- object
对象类型
- 只读属性
redonly:约束属性不可在对象初始化外赋值 - 可选属性
?:定义该属性可以不存在 - 任意属性
[key:string]:any;约束所有对象属性都必须是该属性的子类型,有该属性则可添加任意属性,例如
bytedancer.platform='data';
函数类型
- 函数定义
function add(x: number, y: number): number { return x + y; }
console.log(add(1,2))
- 函数重载
定义函数重载需要定义重载签名和一个实现签名。
重载签名定义函数的形参和返回类型,没有函数体。一个函数可以有多个重载签名
- 数组类型
- Record对象类型
补充类型
泛型
- 类型别名 & 类型断言
三、高级类型
联合/交叉类型
这种写法相当繁琐,重复多
类型保护与类型守卫
函数返回值类型
ReturnType<T>的作用是用于获取函数 T 的返回类型。
示例
type T0 = ReturnType<() => string>; // string
type T1 = ReturnType<(s: string) => void>; // void
type T2 = ReturnType<<T>() => T>; // {}
type T3 = ReturnType<<T extends U, U extends number[]>() => T>; // number[]
type T4 = ReturnType<any>; // any
type T5 = ReturnType<never>; // any
type T6 = ReturnType<string>; // Error
type T7 = ReturnType<Function>; // Error