• TypeScript中Never类型和类型断言


    Never 类型

    never类型表示:那些永不存在的值的类型。
    例如:never类型是那些总是会【抛出异常】或根本就【不会有返回值的函数表达式】或【箭头函数表达式的返回值类型】
    
    never类型是任何类型的子类型,也可以赋值给任何类型。
    然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。
    any也不可以赋值给never。
    
    //never类型是那些总是会【抛出异常】
    function error(message: string): never {
        throw new Error(message);
    }
    

    never 在项目中的运用

    interface Info {
      //当我们不知道这个数组里面是什么类型的时候,我们就可以设置为never类型
      like: never[];  
      age: number;
      name: string;
    }
    let obj: Info = {
      like: [],
      age: 18,
      name:'磅礴'
    }
    

    类型断言

    有时候你会遇到这样的情况,你会比TypeScript更了解某个值的详细信息。
    通过类型断言告诉编译器,“相信我,我知道自己在干什么”。
    类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。
    它没有运行时的影响,只是在编译阶段起作用
    

    类型断言的两种方式

    类型断言有两种形式。 其一是“尖括号”语法:
    let someValue: any = "this is a string";
    let strLength: number = (<string>someValue).length;
    
    另一个为as语法:
    let someValue: any = "this is a string";
    let strLength: number = (someValue as string).length;
    
    两种形式是等价的。 至于使用哪个大多数情况下是凭个人喜好;
    然而,当你在TypeScript里使用JSX时,只有 as语法断言是被允许的。
    
  • 相关阅读:
    Java中字符串indexof() 的使用方法
    .Net Core WebApi(3)—NLog
    .Net Core WebApi(2)—Swagger
    left join 左边有数据,右边无数据
    Angular—入门环境,项目创建,导入项目
    SQLite介绍和使用
    .Net Core-类库中创建CodeFirst
    .Net Core WebApi(1)— 入门
    .Net Jpush极光推送
    Webform中的前后端分离
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/16794203.html
Copyright © 2020-2023  润新知