符号

&

  1. type A = {
  2. name: String;
  3. }
  4. type B = {
  5. age: number;
  6. }
  7. type Person = A & B;
  8. let jack: Person = {
  9. name: 'jack',
  10. age: 20,
  11. }

截屏2021-12-02 上午11.42.37.png

|

  1. type A = string | number;
  2. let a: A = 'hello';
  3. let b: A = 12;

截屏2021-12-02 上午11.43.31.png

? 【ESnext规范】

  1. let obj = {}
  2. obj.a;
  3. obj?.b;
  4. obj?.['c'];

?? 【短路属性】

只检验左侧是否为undefined或null
注意0、false会产生短路

  1. console.log(undefined ?? 2);
  2. console.log(null ?? 3);
  3. console.log(0 ?? 3);
  4. console.log(false ?? 3);

image.png

! 【后缀操作符】

  1. type A = string | undefined | null;
  2. function showType(args: A) {
  3. let str1: string = args;
  4. let str2: string = args!;
  5. }

截屏2021-12-02 上午11.49.16.png

reat基础类型

typeof

instaceofΩ

keyof

O[K]

[K in O]

+、-、readonly

X ? Y : Z

!

=

as

is

TS常见帮助类型

reat进阶类型1

reat进阶类型2

reat进阶类型3