TypeScript 里的 unknown 和 never
unknown 和 any 类似,但前者类型安全。
未知类型代表任何值。 这类似于 any 类型,但更安全,因为使用未知值做任何事情都是不合法的:
function f1(a: any) {a.b(); // OK
}
function f2(a: unknown) {a.b();
}
如果一个函数返回类型为 unknown,那我们无法再对其进行访问其实例方法或者属性的操作:
function safeParse(s: string): unknown {return JSON.parse(s);
}// Need to be careful with 'obj'!
const obj = safeParse('{"data": 1234}');console.log(obj);console.log(obj.data);
never
下列函数,绝不会返回任何数据,故用 never 修饰其返回值:
function fail(msg: string): never {throw new Error(msg);
}
never 类型表示从未观察到的值。 在返回类型中,这意味着函数抛出异常或终止程序的执行。
更多Jerry的原创文章,尽在:“汪子熙”:
TypeScript 里的 unknown 和 never相关推荐
- TypeScript 里 interface 和 type 的区别
StackOverflow 上的讨论链接 Interface vs Type alias in TypeScript 2.7 Differences Between Type Aliases and ...
- TypeScript里的Index signature
参考链接:https://basarat.gitbook.io/typescript/type-system/index-signatures 看一个例子: class Foo {constructo ...
- TypeScript里一些特殊的类型
本文内容部分来自:https://www.w3cschool.cn/typescript/typescript-basic-types.html any 有时候,我们会想要为那些在编程阶段还不清楚类型 ...
- TypeScript Never 与 Unknown
TypeScript Never 与 Unknown 本节介绍 never 和 unknown 类型,其中 unknown 类型作为 any 类型对应的安全类型使用起来更加安全,如果有 any 类型的 ...
- TypeScript里string和String,真不是仅仅是大小写的区别
本文分享自华为云社区<TypeScript里string和String的区别>,作者:gentle_zhou . 背景 与JavaScript语言不同的是,TypeScript使用的是静态 ...
- TypeScript里的工具类型Partial的理解用法
TypeScript里的工具类型Partial的理解用法 Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional): 其实Partial源码很简单 Partial 可以快速 ...
- TypeScript 里 tsconfig.json 文件的作用
What is a tsconfig.json 目录中存在 tsconfig.json 文件表明该目录是 TypeScript 项目的根目录. tsconfig.json 文件指定了编译项目所需的根文 ...
- TypeScript 里的枚举类型 enum
官网地址 枚举是 TypeScript 为数不多的不是 JavaScript 类型级扩展的特性之一. 枚举允许开发人员定义一组命名常量. 使用枚举可以更轻松地记录意图,或创建一组不同的案例. Type ...
- TypeScript 里的 module 概念
Modules JavaScript 在处理模块化代码方面有着悠久的历史. TypeScript 自 2012 年问世以来,已经实现了对许多这些格式的支持,但随着时间的推移,社区和 JavaScrip ...
最新文章
- 制度缺陷还是人性不堪
- UOJ 152 汉诺塔 分治
- php图形界面框架,python GUI 图形化界面框架的选择
- JVM内存管理概述与android内存泄露分析
- java上传永久图文素材_Java-微信开发上传永久素材(支持所有文件类型)
- linux SHELL脚本编程
- 分布式系统设计时,遵循CAP原则
- delphi 读写文本文件
- 【转】android 常用theme
- Axure基础教程:产品流程图的制作方法详解
- 供应链三道防线(读书笔记)2(共4)
- 华为网吧服务器型号,网吧需要什么配置的服务器
- 图像坐标球面投影_PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)...
- [转]Windows服务“允许服务与桌面交互”的使用和修改方法
- web(蜘蛛网和网)
- 软件开发中的SD、SE、QA和RD是什么意思?
- js网状特效源代码下载
- Android sharesdk 集成Google登陆,报错Success,{isSigin:false}
- Android点击WebView中的图片查看大图
- STM32入门100步 第5期 STM32内部通信功能