gpt4 book ai didi

angular - 与客户类型一样

转载 作者:行者123 更新时间:2023-12-05 05:18:40 26 4
gpt4 key购买 nike

我正在研究 latest angular code这是 typescript 并来到以下行:

const scope = self as any as ServiceWorkerGlobalScope;

上面我不明白的是:如果类型 self 是 any 为什么要将它转换为 ServiceWorkerGlobalScope?为什么不像下面这样将它声明为 ServiceWorkerGlobalScope:

const scope = self as ServiceWorkerGlobalScope;

const scope : ServiceWorkerGlobalScope = self;

那一行是什么意思?这是否意味着范围是最喜欢类型 ServiceWorkerGlobalScope 的任何类型?

最佳答案

如果你使用简化的:

const scope : ServiceWorkerGlobalScope = self;

TypeScript 将检查 self 的结构针对类型 ServiceWorkerGlobalScope .如果它发现类型不兼容,您将收到如下错误:

Type 'Window' cannot be converted to type 'ServiceWorkerGlobalScope'. Property '...' is missing in type 'Window'.

通过移动 self进入any首先键入,然后在 any 之间执行检查类型和 ServiceWorkerGlobalScope类型。在这种情况下,any与“任何”其他类型兼容,并且没有警告。

这与应用于类型断言的流程相同,您可以尝试类型断言:

x = <ServiceWorkerGlobalScope>y

但是类型断言仍然执行类型检查。如果你想“选择退出”类型检查,你可以使用 any输入中介:

x = <ServiceWorkerGlobalScope><any>y

关于angular - 与客户类型一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47410483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com