TypeScript(类型断言,Omit,&,Pick,Partial,Required)

TypeScript(类型断言,Omit,&,Pick,Partial,Required),第1张

目录

类型断言

1. as 语法

2.“尖括号”<> 语法

Omit(去除类型中某些项)

1.去除单个项

2. 去除多个项

Pick选取类型中指定类型

给类型加上指定类型 &

Partial将类型中所有选项变为可选(即加上?)

Required将类型中所有选项变为必选(去除所有?)


类型断言 1. as 语法
let strValue: any = 'this is string type';
let strLength: number = (strValue as string).length;
2.“尖括号”<> 语法
let strValue = 'this is a string type';
let strLength = (strValue).length;

应用场景:

在使用pinia引入数据productInter时需要ts语法中的类型断言,数据类型为productInter声明的数据类型,其为数组,则state声明productList空数组的时候用到类型断言

state:()=>{
   return{
    productList:[] as productInter[]
  }
}
Omit(去除类型中某些项)
type UserInfo = {
  name: string; // 姓名
  phone?: string; // 手机号
  email: string; // 邮箱
  avatar: string; // 头像
  userid: string; // id
}
1.去除单个项
type OmitEmail = Omit;
/*
 OmitEmail{
  name: string;
  phone?: string;
  avatar: string;
  userid: string;
} */
2. 去除多个项
type OmitEmailAvatar = Omit;
/* 
OmitEmailAvatar {
  name: string;
  phone?: string; 
  userid: string;
} */
Pick选取类型中指定类型

只要UserInfo中的姓名和电话项

interface ContactPick extends Pick { }
/* 
ContactPick {
  name: string;
  phone?: string; 
} */
给类型加上指定类型 &

已经定义好了数据类型,现在需要给其中一些加上id这个类型

type Connect = {
  id: number
} & UserInfo
Partial将类型中所有选项变为可选(即加上?)
type PartialContact = Partial
/* 
PartialContact{
  name?: string; // 姓名
  phone?: string; // 手机号
  email?: string; // 邮箱
  avatar?: string; // 头像
  userid?: string; // id
} */
Required将类型中所有选项变为必选(去除所有?)
type RequiredContact = Required
/* 
RequiredContact{
  name: string; // 姓名
  phone: string; // 手机号
  email: string; // 邮箱
  avatar: string; // 头像
  userid: string; // id
}
 */

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/945093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存