TypeScript 入门|青训营笔记

57 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

这篇文章是青训营-前端《TypeScript 入门》的课堂笔记。

基本语法

数据类型

typescript的数据类型如下:

  • boolean
  • number
  • string
  • array
  • tuple
  • enum
  • any
  • null 和 undefined
  • void
  • never
  • object

1.png

对象类型

2.png

  • 只读属性redonly:约束属性不可在对象初始化外赋值
  • 可选属性?:定义该属性可以不存在
  • 任意属性[key:string]:any;约束所有对象属性都必须是该属性的子类型,有该属性则可添加任意属性,例如
bytedancer.platform='data';

函数类型

  • 函数定义
function add(x: number, y: number): number { return x + y; }
console.log(add(1,2))
  • 函数重载

定义函数重载需要定义重载签名和一个实现签名

重载签名定义函数的形参和返回类型,没有函数体。一个函数可以有多个重载签名

下载 (3).png

下载 (2).png

  • 数组类型

下载 (4).png

  • Record对象类型

补充类型

下载 (5).png

泛型

下载 (6).png

下载 (7).png

下载 (8).png

  • 类型别名 & 类型断言

下载 (9).png

三、高级类型

联合/交叉类型

这种写法相当繁琐,重复多

QQ图片20220805232904.png

2IW%AI1CHD[(HM(GKDL5E]2.png

类型保护与类型守卫

L4A7OERUL6XY11R~MRQ.png

函数返回值类型

(AUBX035`RZ5J9{LHK6O7NY.png

GVF5)OI0{LD2SGAQR(~292P.png

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