首页 > 解决方案 > 声明扩展任何类的目的是什么 - 打字稿

问题描述

我正在查看一个名为 WalletConnect 的包中的代码,我在那里遇到了一件奇怪的事情。在声明文件中,有这两行:

declare const ProviderEngine: any;
declare class WalletConnectProvider extends ProviderEngine {
    bridge: string;
    ...
}

为什么要创建扩展类any?这有什么好处?谢谢你的澄清。

标签: typescriptclass

解决方案


我相信所做的只是允许自动完成已知属性,同时仍然允许任何属性。

例如你得到这个自动完成:

类自动完成

即使任何事情都是允许的,因为类 extends any

new WalletConnectProvider().bridge // can autocomplete this property
new WalletConnectProvider().noSuchMethod() // no type error

但是,我不建议这样做,因为几乎所有使用any较低类型的安全性。在这种情况下,您可以编写各种会在运行时崩溃的代码。我不太确定这些作者想要做什么,但这似乎是一个糟糕的计划。


推荐阅读