TS常见操作符以及运算符

  • Post author:
  • Post category:其他


TS常见操作符以及运算符

  1. 主要用于断言操作对象事非null和非undefined的时候,意思就是在改字段的可能值当中把null和undefined排除掉;

    场景:比如有一个对象可能为null的情况下,用来躲过编译时期的错误提示;

  2. ?.

    可选链,类似于取对象的属性或者方法,但是不同的是当引用为空的时候不会引起错误,当对象为null或者undefined时立即停止某些表达式的允许,直接返回undefined,停止下面的执行;可选链,可选链;

  3. ? :

    表示属性可选,当一个属性可有可无的时候可以;

  4. &

    单个&的运算符是将多个类型合并成一个类型,通过&可以将现有的多个类型合并成一种类型;如果多个类型当中相同属性的类型不同,既是number又是string,那么最终结果变成never,因为没有一个数据同时属于这两种类型的;

  5. |

    当某个字段想要使用多个类型时,可以使用|运算符分割,比如某个字段可能为字符串,也可能为数字类型;也可以用于定义几个字面量类型,用来约束取值只能某几个值当中的一个;

  6. ??

    当左侧的操作数为null或者undefined的时候,其返回右侧的操作数,否则返回左侧的操作数。与||运算符不一样的是,逻辑或会在左操作数为false才返回右侧操作数,包括0,NaN等;

工具类型关键词

  1. Partial

    主要用于把某个接口类型中点定义的属性变成可选的;

  2. Required

    主要用于将某个接口当中的定义的属性变成必选的;

  3. typeof

    typeof value 的值必须是 number, string,boolean,symbol等值,进行比较是,ts不会组织你与其他字符串进行比较;

  4. keyof

    是ts当中的索引类型差选操作符,keyof T 会得到T当中对应的属性字段;用来限制某个属性是类型当中的其中之一的属性字段时;

    在这里插入图片描述

  5. in

    用于遍历目标类型的公开属性名,可用于枚举类型和联合类型当中;

  6. Record

    主要用于对象的某个字段值作为索引,去保存一个对象或者一个数组等值;

interfce Goods {
  id: string,
  name: string,
  total: number,
}
const goodsMap: Record<string, Goods> = {};
const goodlist: Goods = []//假设里面已经有对应的数据;

// 想要通过对应的name值查找到对应的数据
goodslist.forEach(goodsItem => {
  goodsMap[goodsItem.name] = goods;//那么对应的goods就是对应想要取到的值;
})

type mainInfoGood: Pick<Goods, 'id' | 'name'>

const mainGoods: mainInfoGood = {
  id: '1234';
  name: '每日优鲜';
}



  1. Pick

    主要用于提取接口的某几个属性,一个接口当中使用其中的几个属性;
  2. Exlude

    提取的是如果T中的类型在U中不存在,则返回该字段,如果存在则抛弃;
type Exclude<T,U> = T extends U ? never : T;
  1. Omit

    主要作用是在一个类型当中将某个属性或者字段剔除;
interface Goods {
  id: string,
  name: string,
  total: number,
}
type mainGoodsType = Omit<Goods, 'total'>;
const mainGoos: mainGoodsType = {
  id: '1234',
  name: '每日优鲜',
}

小白总结



版权声明:本文为LinLineJ原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。