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相关推荐

  1. TypeScript 里 interface 和 type 的区别

    StackOverflow 上的讨论链接 Interface vs Type alias in TypeScript 2.7 Differences Between Type Aliases and ...

  2. TypeScript里的Index signature

    参考链接:https://basarat.gitbook.io/typescript/type-system/index-signatures 看一个例子: class Foo {constructo ...

  3. TypeScript里一些特殊的类型

    本文内容部分来自:https://www.w3cschool.cn/typescript/typescript-basic-types.html any 有时候,我们会想要为那些在编程阶段还不清楚类型 ...

  4. TypeScript Never 与 Unknown

    TypeScript Never 与 Unknown 本节介绍 never 和 unknown 类型,其中 unknown 类型作为 any 类型对应的安全类型使用起来更加安全,如果有 any 类型的 ...

  5. TypeScript里string和String,真不是仅仅是大小写的区别

    本文分享自华为云社区<TypeScript里string和String的区别>,作者:gentle_zhou . 背景 与JavaScript语言不同的是,TypeScript使用的是静态 ...

  6. TypeScript里的工具类型Partial的理解用法

    TypeScript里的工具类型Partial的理解用法 Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional): 其实Partial源码很简单 Partial 可以快速 ...

  7. TypeScript 里 tsconfig.json 文件的作用

    What is a tsconfig.json 目录中存在 tsconfig.json 文件表明该目录是 TypeScript 项目的根目录. tsconfig.json 文件指定了编译项目所需的根文 ...

  8. TypeScript 里的枚举类型 enum

    官网地址 枚举是 TypeScript 为数不多的不是 JavaScript 类型级扩展的特性之一. 枚举允许开发人员定义一组命名常量. 使用枚举可以更轻松地记录意图,或创建一组不同的案例. Type ...

  9. TypeScript 里的 module 概念

    Modules JavaScript 在处理模块化代码方面有着悠久的历史. TypeScript 自 2012 年问世以来,已经实现了对许多这些格式的支持,但随着时间的推移,社区和 JavaScrip ...

最新文章

  1. 制度缺陷还是人性不堪
  2. UOJ 152 汉诺塔 分治
  3. php图形界面框架,python GUI 图形化界面框架的选择
  4. JVM内存管理概述与android内存泄露分析
  5. java上传永久图文素材_Java-微信开发上传永久素材(支持所有文件类型)
  6. linux SHELL脚本编程
  7. 分布式系统设计时,遵循CAP原则
  8. delphi 读写文本文件
  9. 【转】android 常用theme
  10. Axure基础教程:产品流程图的制作方法详解
  11. 供应链三道防线(读书笔记)2(共4)
  12. 华为网吧服务器型号,网吧需要什么配置的服务器
  13. 图像坐标球面投影_PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)...
  14. [转]Windows服务“允许服务与桌面交互”的使用和修改方法
  15. web(蜘蛛网和网)
  16. 软件开发中的SD、SE、QA和RD是什么意思?
  17. js网状特效源代码下载
  18. Android sharesdk 集成Google登陆,报错Success,{isSigin:false}
  19. Android点击WebView中的图片查看大图
  20. STM32入门100步 第5期 STM32内部通信功能

热门文章

  1. mysql修改密码后phpmyadmin 出现#1045
  2. IPv6实验1_IPv6地址配置
  3. 结对编程-黄金点游戏
  4. iOS之设置用户头像的圆角
  5. Hadoop集群(第3期)_VSFTP安装配置
  6. 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能...
  7. 接口隔离原则——面向对象设计原则
  8. ie9 background 不显示
  9. pip 安装模块报错解决
  10. PHP 5.6 开启CURL HTTPS 类型