TypeScript | 类型推论,类型断言的使用

293 阅读2分钟

一.类型推论

1.作用

在ts中,某些没有明确指出类型的地方,ts的类型推论机制会帮助提供类型

 换句话说:由于类型推论,类型注解有些地方可以不写

2.例子

 使用场景:1.声明变量并初始化时 2.决定函数返回值时

 推荐:能省略类型注解的地方就省略,充分利用ts类型推论的能力,提供开发效率

 技巧:如果不知道类型,可以把鼠标放在变量名称上,利用vscode的提示来查看类型

let age = 12;
代替了 let age:number=12;

function add(num: number, num1: number) {
    return num + num1
}
代替了:function add(num: number, num1: number): number{...}

二.类型断言

1.作用

1.解释型强制类型转换

2.就是告诉编译器,这个不用做检查,我知道自己在干嘛

2.语法

值 as 类型 或 <类型>值

let len: number = (<string>someValue).length;
let len: number = (someValue as string).length;

使用场景:1.当你比ts更加明确一个值的类型时

2.当你不想要ts检测类型时, 可以 as any

3.例子

1.一个any类型的变量, 但是我们明确的知道这个变量中保存的是字符串类型

此时就可以通过类型断言将any类型转换成string类型, 使用字符串类型中相关的方法了。

let str: any = 'siidid'
let len = (str as string).length //使用了字符串的length方法

2.例子

getElementById方法返回值的类型是HTMLElement,改类型只包含所有标签公共的属性,不包含a标签特有的href。这种情况下可以使用类型断言指定更加具体的类型 加了类型断言as ,htmlAnchorElement里面有href属性,没有加类型断言as ,就会报错

let alink = document.getElementById('link') as HTMLAnchorElement
alink?.href