首页 > 解决方案 > 导入与命名空间同名的类

问题描述

我正在使用具有单独 @types 定义的第三方库,如下所示:

declare namespace Foo { /* ... */ }

declare class Foo { /* ... */ }

export = Foo;

如何在我的代码中导入类 Foo?

另外,这种奇怪的名称重复是 Typescript 中的一种好习惯吗?(这是我正在使用的实际定义文件)。

标签: typescript

解决方案


你的类是一个构造函数。当命名空间对象附加到构造函数定义时,它们本质上将合并,并且您将拥有类似嵌套类的东西。如果您只想导入 Foo 类,那么您就欺骗了自己。

我不能说这是否是好的做法,但我用它来模拟嵌套类。

可以使用以下命令导入命名空间和类:

import * as Foo from 'foo';

推荐阅读