ts的类型断言

一、类型断言

在这里插入代码片let test1:string|number;
(test1! as number).toFixed(2);
(test1! as number).toFixed(2);
((<number>test1!).toFixed(1))

这是一些代码片段,主要涉及类型断言和JavaScript的Number对象的toFixed方法。下面是每个代码片段的功能:

let test1:string|number;

这行代码声明了一个变量test1,其类型可以是字符串(string)或数字(number)。

(test1! as number).toFixed(2);

这里使用了类型断言。!后缀是TypeScript的非空断言运算符,它告诉TypeScript编译器我们确定test1不会是null或undefined。
as number是一个类型断言,它将test1的类型从可能的字符串或数字断言为数字。
.toFixed(2)是JavaScript的Number对象的一个方法,用于将数字格式化为一个字符串,保留两位小数。例如,如果test1是5.678,那么这行代码将返回字符串"5.68"。

((<number>test1!).toFixed(1))

这里首先使用非空断言运算符!,然后进行类型断言,将test1的类型断言为数字。
.toFixed(1)同样是将数字格式化为一个字符串,但只保留一位小数。例如,如果test1是5.678,那么这行代码将返回字符串"5.7"。
结果被包含在括号中,为了确保正确的运算顺序或者处理返回值。
总的来说,这些代码片段展示了如何使用类型断言来处理可能具有混合类型的变量,以及如何使用Number对象的toFixed方法来格式化数字为字符串。

二、双重断言

let test2:string|number;
((test2! as any) as string)

尽量不要使用双重断言,会破坏原有类型关系,断言为any是因为any类型可以被赋值给其他类型

你可能感兴趣的:(typescript)