迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

Typescript 中的 unknown 是什么

作者:迹忆客 最近更新:2022/08/26 浏览次数:

对于 unknown 类型,我们必须首先检查当前存储在变量中的类型,然后才能获得 typescript 支持。

当使用 any 类型时——typescript 会忽略我们所做的任何事情,任何事情都是允许的,但这不是我们大多数时候想要的,大多数时候我们仍然希望进行一些类型检查。

那是 unknown 出现的时候——我们告诉 typescript,嘿,我们会得到这个值,但是我们不知道它的类型,所以我们只需要检查几个 if 语句来追踪它并安全地使用它 ,在 if 块中为我们提供了对检查的特定类型的支持。

例如,在下面的代码片段中,我们得到一个错误:

let myString: string;
let remoteData: unknown;

remoteData = 'hello world';
myString = remoteData;

typescript unknown 错误

错误的原因是 myString 必须是字符串,并且 remoteData 的类型未知,因此分配失败。 一个重要的区别是,如果我们对 remoteData 的类型使用 any 而不是 unknown,我们就不会得到错误,因为当我们使用任何 typescript 时,不会为我们提供类型检查。

修复错误的方法是有条件地检查 typeof remoteData 是否为字符串,然后才继续分配:

let myString: string;
let remoteData: unknown;

remoteData = 'hello world';

if (typeof remoteData === 'string') {
  myString = remoteData;
}

if 块的范围内 remoteData 保证是一个字符串,因此我们可以访问它上面的所有字符串方法,例如 toLowerCase。

在 if 块之外,类型仍然未知。

因此,在使用 unknown 类型时,我们必须在进行分配和调用特定于类型的方法之前进行条件检查,与 any 类型相比,它仍然提供了大量的功能和类型检查。

当我们不知道我们将获得什么类型的值时,unknown 是比任何类型更好的类型,但我们知道我们想用它做什么。 在这些情况下,我们可以使用 unknown 类型在条件块中获得类型支持。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便