5、TypeScript类型推导
2022-03-31 13:04:32 0 举报
AI智能生成
前端开发,TS学习,TS,TS类型
作者其他创作
大纲/内容
类型推论
定义
指编程语言中能够自动推导值的类型的能力,它是一些强静态类型语言中出现的特性
条件
如果定义的时候就赋值就能利用到类型推断
定义时未赋值就会推论成 any 类型
举个🌰
定义时赋值推断
报错
报错详细信息,变量x的类型被推断为数字。
这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时。
定义时不赋值时
可以赋任何值都不抛错
定义的时候没有赋值,被推断为 any
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型而完全不被类型检查
类型断言
定义
类型断言可以将一个联合类型的变量,指定为一个更加具体的类型
联合类型
表示取值可以为多种类型中的一种
详细后面写
语法
值 as 类型
值 as 类型
<类型>值
<类型>值
注意
在 tsx 语法(React 的 jsx 语法的 ts 版)中必须使用前者,即 值 as 类型。
条件
不能将联合类型断言为不存在的类型
name 中不存在 boolean 类型,断言抛错
非空断言
非空断言
定义
在上下文中当类型检查器无法断定类型时,一个新的后缀表达式操作符 ! 可以用于断言操作对象是非 null 和非 undefined 类型。
x! 将从 x 值域中排除 null 和 undefined 。
条件
"strictNullChecks": true 编译下
举个🌰
编译报错
因为e 为可选参数,所以有可能不传,
不传时 e 的值为 undefined , undefined接着调用 name 就会抛出异常
不传时 e 的值为 undefined , undefined接着调用 name 就会抛出异常
解决办法
此时只需要加上 ! 就能避免错误
从 e 的类型中排出 unedfined 后,访问 name 属性
0 条评论
下一页