typescript 中的断言/转型

  • Post author:
  • Post category:其他




1 什么是ts的断言

类型断言(Type Assertion)可以手动指定一个值的类型,有点类似于java中的转型,都是一种临时性的类型声明,并不会对原本的引用的类型发生更改。

语法如下:

var a: any = "123";
console.log((<string>a).length)
console.log((a as string).length)

两种显式地进行断言语法,虽然,实际过程中我不进行任何断言,vscode也自动识别出a有length这个属性……但是,显式地进行断言还是更加规范合必要的。



2 为什么要进行断言?

因为:ts和java不同,ts支持联合类型,即一个变量的类型可是多种,甚至是互不兼容的多种;同时,ts又是静态类型和强类型的,有些属性和方法只能对某个类型使用,因此,为了明确操作的联合类型变量的类型,此时就要使用类型断言。

类似的,在java中,父类向子类断言/转型,只有原本就是该子类的情况下才能进行转型,从而能顺利使用子类的方法、属性;而子类没必要向父类转型,因为方法默认时继承的,子类也能使用父类的方法、属性



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