• home > webfront > ECMAS > typescript >

    typescript从类型推断到类型断言、类型守卫

    Author:zhoulujun Date:

    TS类型魔法类型推断:类型推断就是TypeScript会根据上下文自动帮我们推算出变量或方法的类型,比如:letflag;//推断为any类型断言:有些情...

    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