一.类型推论
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