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. 认识一下MRS里的“中间人”Alluxio

    摘要:Alluxio在mrs的数据处理生态中处于计算和存储之间,为上层spark.presto.mapredue.hive计算框架提供了数据抽象层,计算框架可以通过统一的客户端api和全局命名空间访问 ...

  2. 资深Linux 系统管理员常用的15个很好用的Cron工作示例

    摘要:Linux Cron 实用程序是一种在特定时间和/或日期持续调度例行后台作业的有效方法.这篇文章讲述了15 个很好用的 crontab 工作调度示例. 本文分享自华为云社区<Linux C ...

  3. CIO们开始将软件供应链升级为安全优先级top

    开源之所以在软件开发中大量使用的原因是它提供了经过良好测试的构建块,可以加速复杂应用程序和服务的创建.但是第三方软件组件以及包和容器的便利性同时也带来了风险--软件供应链攻击. 软件供应链攻击日益普遍 ...

  4. Python异步编程并发比较之循环、进程、线程、协程

    服务端 现在有一个api接口 http://127.0.0.1:18081/hello 批量请求该接口,该接口中有一个5s的阻塞.使用循环,多进程,多线程,协程等四种方式,一共请求10次,比较总的请求 ...

  5. python sorted排序小结

    转载至: https://blog.csdn.net/ray_up/article/details/42084863 在python中排序有两个专用函数,一个是sort,另一个sorted.其中sor ...

  6. 【mongodb】pymongo使用

    pymongo基本使用 import pymongo from bson.objectid import ObjectId # 连接方式1 client = pymongo.MongoClient(h ...

  7. mybatis使用oracle进行添加数据的心得

    本次博主主要进行oralce数据库开发,好久不用oracle,有很多知识点也忘的差不多了,本次主要是复习一下工作中主要使用的一些sql语句编写: 查询 查询语句都是正常的,但是需要注意的是oracle ...

  8. Codeforces Round #650 (Div. 3) F1经典离散化DP

    比赛链接:Here 1367A. Short Substrings Description 一个字符串 abac,然后把所有长度为2的子串加起来变成新串,abbaac,由 ab ba ac组成.现在给 ...

  9. 【内核】深入分析内核panic(二)--内核中的少林扫地僧-NMI Watchdog Timer

    没有完美的代码 没有完美的人,更没有完美的代码.虽然教科书上说deadlock(死锁)多么不好不好,但是在现实生活中,很难把它完全消灭.假设不小心内核出现了deadlock,可能你得干瞪眼.CPU就在 ...

  10. svg组件封装

    svg图标优点 文件体积小,能够被大量的压缩 图片可无限放大而不失真(矢量图的基本特征) 在视网膜显示屏上效果极佳 能够实现互动和滤镜效果 svg图标使用 1.安装相应的npm包: yarn add ...