目 录CONTENT

文章目录

TS(二)类型断言和非空判断

Typescript(二) 类型断言和非空判断

我们在获取类型的时候为了方便 可以使用类型断言来判定它是那一类类型

关键字 as

const getLength = (target: number | string): number => {
  if ((target as string).length) {
    return (target as string).length;
  } else {
    return Number(target);
  }
};

console.log(getLength("222"));

console.log(getLength(222));

这里特别注意的不能使用 target as string 来判断

必须用(target as string).length 来判断 as 只不过就是强制把变量的类型转变为你想要的类型,不能作为判断的依据

非空断言 !

它表示 我这个值存在,肯定不是null 或者undefined

  • 在上下文中当类型检查其无法断定类型的时候,一个新的后缀表达式操作符 ! 来断言该类型不是 null 或 undefined
  • 非空断言操作符 ! 可以放置在引用表达式的末尾,以断言表达式引用对象为非 null 或非 undefined 类型。
  • 非空断言操作符 ! 可以用来断言一个表达式是非 null 和非 undefined 类型,但是不能断言一个表达式一定存在。

可有可无 ?

  • 它表示 我这个值可能有,也可能没有

选链操作符 ?. 允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,当链条上的某个属性值为 null 或 undefined 时,它会立即停止运算,而不会抛出错误。

interface obj1 {
  name: string;
  age?: number;
  address: {
    city: string;
    street: string;
    houseNum: number;
  };
}
const obj: obj1 = {
  name: "张三",
  age: 18,
  address: {
    city: "北京",
    street: "长安街",
    houseNum: 100,
  },
};

const obj2: obj1 = {
  name: "李四",
  address: {
    city: "北京",
    street: "长安街",
    houseNum: 100,
  },
};
0
博主关闭了当前页面的评论