TypeScript 里的 unknown 和 never

简介: TypeScript 里的 unknown 和 never

unknown 和 any 类似,但前者类型安全。


未知类型代表任何值。 这类似于 any 类型,但更安全,因为使用未知值做任何事情都是不合法的:


function f1(a: any) {
  a.b(); // OK
}
function f2(a: unknown) {
  a.b();
}

image.png


如果一个函数返回类型为 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);

image.pngnever

下列函数,绝不会返回任何数据,故用 never 修饰其返回值:


function fail(msg: string): never {
  throw new Error(msg);
}

never 类型表示从未观察到的值。 在返回类型中,这意味着函数抛出异常或终止程序的执行。

84

相关文章
|
4月前
|
JavaScript 安全
8.【TypeScript 教程】Never 与 Unknown
8.【TypeScript 教程】Never 与 Unknown
30 3
|
5月前
|
JavaScript 编译器
TypeScript 中 never 和 void 的区别
TypeScript 中 never 和 void 的区别
100 0
|
5月前
|
JavaScript 安全
TypeScript中any unkown never的区别
TypeScript中any unkown never的区别
|
5月前
|
JavaScript
TypeScript中Never类型和类型断言
TypeScript中Never类型和类型断言
|
JavaScript 安全
TypeScript 中你不一定知道的 top types,在用 any 之前先试试 unknown?
最近发现了一本 TS 相关的电子书,Tackling TypeScript[1]。随便翻看了一下,就发现了自己很感兴趣的一个问题,并且也经常听说在国内面试中出现。
|
JavaScript 安全
Typescript any、unknown、 void、undefined 和 never 类型
本文介绍了 Typescript 的 `any` 类型和 `unkonw` 类型,它们都简化了在 TS 中对类型的使用,方便快速开发,相比于 `any`,`unkonw` 类型更加安全。 然后介绍了 Typescript 的几个特殊的类型,`void`,`undefined`,`never`,它们主要应用在几个特定的场景,比较容易区分。
726 0
|
JavaScript
TypeScript 里 never 类型的用法举例
TypeScript 里 never 类型的用法举例
127 0
TypeScript 里 never 类型的用法举例
|
JavaScript
TypeScript 里的 unknown 和 never
TypeScript 里的 unknown 和 never
95 0
TypeScript 里的 unknown 和 never
|
9天前
|
JavaScript
typeScript进阶(9)_type类型别名
本文介绍了TypeScript中类型别名的概念和用法。类型别名使用`type`关键字定义,可以为现有类型起一个新的名字,使代码更加清晰易懂。文章通过具体示例展示了如何定义类型别名以及如何在函数中使用类型别名。
26 1
typeScript进阶(9)_type类型别名