介绍

内置类型函数说明

TS内置了一些函数,帮你快速批量操作一些类型。

比如类型A 有两个属性,都不是可选的属性,一定要有的。
而类型B想要和类型A一样的属性,但是属性都是可选。

这个时候你可以手动编写B,反正就2条属性,和A的一样就好了。

但是,如果A有几十条属性,你怎么办?此时用内置的函数,可以批量把A的属性变成可选的。

函数说明

https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype

常用函数

属性操作

Partial 把属性变成可选

  1. // A 类型有两个属性,必选
  2. type A = {
  3. A1: string;
  4. A2: string;
  5. }
  6. let aa:A = {
  7. A1:"111",
  8. A2:"222"
  9. }
  10. // Partial把A的属性变成可选
  11. type B = Partial<A>
  12. // B
  13. let bb:B ={
  14. A1:"2333"
  15. }

Required 把属性变成必选

  1. // A 类型有两个属性,可选
  2. type A = {
  3. A1?: string;
  4. A2?: string;
  5. }
  6. let aa:A = {
  7. A1:"111",
  8. }
  9. // 变成必选
  10. type B = Required<A>
  11. let bb:B ={
  12. A1:"2333",
  13. A2:"222"
  14. }

Omit 找到某个属性并删除

  1. // A 类型有3个属性,必选
  2. type A = {
  3. A1: string;
  4. A2: string;
  5. A3: string
  6. }
  7. let aa:A = {
  8. A1:"111",
  9. A2:"111",
  10. A3:"111",
  11. }
  12. // B继承A,且删掉属性A1
  13. type B = Omit<A,"A1">
  14. let bb:B ={
  15. A2:"2333",
  16. A3:"222"
  17. }

InstanceType 构造函数的实例类型

  1. class C {
  2. x = 0;
  3. y = 0;
  4. }
  5. type T0 = InstanceType<typeof C>;
  6. let a:T0 = {
  7. x:1,
  8. y:2
  9. }
  10. let b:C = {
  11. x:1,
  12. y:2
  13. }

这个主要是用于Vue中使用TS时,获取组件实例的,可以查看 https://www.yuque.com/yejielin/mypn47/gf762y#FvvEQ