美文网首页
TypeScript 里的 unknown 和 never

TypeScript 里的 unknown 和 never

作者: 华山令狐冲 | 来源:发表于2021-08-07 10:34 被阅读0次

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

      本文链接:https://www.haomeiwen.com/subject/cqsiyltx.html