typescript从类型推断到类型断言、类型守卫
Author:zhoulujun Date:
TS类型魔法
类型推断:
类型推断就是TypeScript会根据上下文自动帮我们推算出变量或方法的类型,比如:
let flag; //推断为any
类型断言:
有些情况下 TS 并不能正确或者准确得推断类型,这个时候可能产生不必要的警告或者报错。
let person = {}; // const person = {} as Person; //类型断言 person.name = 'randy'; // Error: 'name' 属性不存在于 ‘{}’ person.age = 20; // Error: 'age' 属性不存在于 ‘{}’ person = 'randy' as any as Person; // 双重断言 person !.toString(); // 非空断言 let x!: number; // 确定赋值断言
但是类型断言不要滥用,在万不得已的情况下使用要谨慎,因为你强制把某类型断言会造成 TypeScript 丧失代码提示的能力。
类型守卫:
类型守卫说白了就是缩小类型的范围,常用的有typeof、instanceof、in。
类型别名
类型别名会给一个类型起个新名字,单不是创建一个新类型。类型别名有时和接口很像,但是可以作用于原始值、联合类型、元组以及其它任何你需要手写的类型.
type some = boolean | string const b: some = true // ok const c: some = 'hello' // ok const d: some = 123 // 不能将类型“123”分配给类型“some”
转载本站文章《typescript从类型推断到类型断言、类型守卫》,
请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/typescript/2020_0212_9539.html
下一篇:最后一页