TypeScript 类型断言

首页 / TypeScript入门教程 / TypeScript 类型断言

在本教程中,你将学习 TypeScript 中的类型断言。

TypeScript 中的类型断言介绍

类型断言可以让 TypeScript 编译器把某个值的类型视为特定的类型,使用 as 关键字来实现:

expression as targetType;

类型断言也被称为类型收缩,允许你收缩 联合类型 的类型范围。看看下面一个简单的函数:

function getNetPrice(
  price: number,
  discount: number,
  format: boolean,
): number | string {
  let netPrice = price * (1 - discount);
  return format ? `$${netPrice}` : netPrice;
}

getNetPrice() 函数接受 price, discountformat 三个参数,返回一个联合类型为 number | string 的值。如果 format 的值为 truegetNetPrice() 函数以字符串形式返回格式化后的价格,否则以数字的形式返回价格。

下面使用 as 关键字告诉编译器,赋值给 netPrice 变量的值是一个字符串:

let netPrice = getNetPrice(100, 0.05, true) as string;
console.log(netPrice);

输出:

$95

同样的,下面的例子使用 as 关键字告诉编译器,赋值给 netPrice 的值是一个数字:

let netPrice = getNetPrice(100, 0.05, false) as number;
console.log(netPrice);

输出:

95

注意类型断言不做任何 类型转换 的操作,它只是告诉编译器进行类型检查的时候应用哪种类型。

可选的类型断言语法

你也可以使用尖括号语法 <> 进行类型断言,如下所示:

<targetType>value;

例如:

let netPrice = <number>getNetPrice(100, 0.05, false);

注意你不能在 React 等库中使用尖括号语法 <>,出于这个原因,进行类型断言的时候保持使用 as 关键字是一种不错的选择。

小结

教程来源:网道(WangDoc.com)以及 Github cody1991 无私奉献

这一章《TypeScript 类型断言 》你学到了什么?做站不易,你的分享是对我们最大的支持,感谢!😊

猜你喜欢

Java性能调优实战 -〔刘超〕

重学线性代数 -〔朱维刚〕

Redis核心技术与实战 -〔蒋德钧〕

Linux内核技术实战课 -〔邵亚方〕

好记忆不如烂笔头。留下你的足迹吧 :)