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语法断言是被允许的。

TypeScript中Never类型和类型断言的更多相关文章

  1. 聊聊 TypeScript 中的类型保护

    聊聊 TypeScript 中的类型保护 在 TypeScript 中使用联合类型时,往往会碰到这种尴尬的情况: interface Bird { // 独有方法 fly(); // 共有方法 lay ...

  2. Typescript中的可索引接口 类类型接口

    /* 5.typeScript中的接口 可索引接口 类类型接口 */ /* 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用 ...

  3. 5种在TypeScript中使用的类型保护

    摘要:在本文中,回顾了TypeScript中几个最有用的类型保护,并通过几个例子来了解它们的实际应用. 本文分享自华为云社区<如何在TypeScript中使用类型保护>,作者:Ocean2 ...

  4. typeScript中特殊类型定义

    // Js八种内置类型, string, number, boolean, undefined, null, object, bigint symbol // ECMAScript内置对象 Array ...

  5. TypeScript学习笔记之接口类型

    TypeScript的接口,个人理解就是一种约束,包括各种类型的契约或者代码定义上的契约.当然,和java中的用法基本一致,接口可以被继承也可以被实现. 定义一个简单的interface interf ...

  6. TypeScript学习笔记之基础类型

    从今天开始学习typescript了,记录ts学习点滴,最后,使用ts结合nodejs开发后端应用,一起共勉吧: typescript最新版本2.6,所有演示代码均基于此版本 开始之前确定安装了如下n ...

  7. typescript枚举,类型推论,类型兼容性,高级类型,Symbols(学习笔记非干货)

    枚举部分 Enumeration part 使用枚举我们可以定义一些有名字的数字常量. 枚举通过 enum关键字来定义. Using enumerations, we can define some ...

  8. TypeScript魔法堂:函数类型声明其实很复杂

    前言 江湖有传"动态类型一时爽,代码重构火葬场",由于动态类型语言在开发时不受数据类型的约束,因此非常适合在项目原型阶段和初期进行快速迭代开发使用,这意味着项目未来将通过重写而非重 ...

  9. TypeScript(3)基础类型

    基础类型 TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用. 布尔值 最基本的数据类型就是简单的true/false值,在JavaScri ...

  10. SQL数据库中字段类型 与C#中的对应字段类型

    数据库中的字段类型和对应的C#中的对应字段类型 数据库                 C#程序int int32text stringbigint int64binary System.Byte[] ...

随机推荐

  1. 云小课|ModelArts Pro 视觉套件:零代码构建视觉AI应用

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:ModelArts ...

  2. 用IoT放羊养牛,不出门也能知道它们的动向

    摘要:羊圈里几只小羊羔有点无精打采,"叮",牧民拉索划开手机,第一时间得知了这个情况.草场上有只牛一直到天黑都没回来,拉索再次通过手机软件,很快定位到那只独自流落在外的牛儿-- 本 ...

  3. 基于C++11特性的线程池

    写在前面:本文学习自基于C++11实现线程池,代码部分均属于该博主,自己只是想记录以下自己的认知,并以这种方式加深一下自己对于多线程的理解 1 前置知识 RAII管理机制 简单来说RAII机制是一种对 ...

  4. print('Hello World!')的新玩法

    相信很多同学入门Python的第一行代码都是print('Hello World!') print是初学者最先接触的Python函数,但是很多人可能到现在也不完全清楚它的用法. print(*obje ...

  5. 【Cpp】RTTI 机制原理解析

    References Baidu Wiki C++中的RTTI机制详解 RTTI 推荐阅读: RTTI 原理 推荐阅读:C++中的RTTI机制 什么是RTTI机制? RTTI 是"Runti ...

  6. Codeforces Round #529 (Div. 3) 练习赛

    Examples input 6 baabbb output bab input 10 ooopppssss output oops 思路: 模拟等差数列即可 #include<bits/std ...

  7. AtCoder Beginner Contest 177 (个人题解,C后缀和,D并查集,E质因数分解)

    补题链接:Here A - Don't be late 题意:高桥(Takahashi )现在要去距离家 \(D\) 米的地方面基,请问如果以最高速度 \(S\) 能否再 \(T\) 时刻准时到达? ...

  8. JSONObject--- JSON---与bean对象的转换

    1.对象PO转json-string:  String json = JSON.toJSONString(customerBueventAccountPO); 1.可能用到的jar宝: json-li ...

  9. 深度揭秘阿里云 Serverless Kubernetes

    作者 | 陈晓宇(阿里云技术专家) 策划 | 褚杏娟 伴随着云原生的发展,从早先的单机版 Docker 到 Kubernetes 的编排领域的一统江湖,再到云上托管 Kubernetes,技术风雨变化 ...

  10. 10、SpringBoot-mybatis-plus-druid多源数据

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...