我使用的第三方库具有单独的@types定义,如下所示:
declare namespace Foo { /* ... */ }
declare class Foo { /* ... */ }
export = Foo;
如何在代码中导入Foo类?
此外,这种奇怪的名称重复在Typescript中是一种好习惯吗? (Here's the actual definition file I'm using)。
答案 0 :(得分:1)
您的类是构造函数。当命名空间对象附加到构造函数的定义之后,它们实际上将合并,并且您将拥有类似嵌套类的内容。 如果您只想导入Foo类,那您就骗了自己。
我不能说这是否是一个好习惯,但是我用它来模拟嵌套类。
可以使用以下命令导入名称空间和类:
import * as Foo from 'foo';
答案 1 :(得分:0)
在tsconfig.json文件的编译器选项中添加"esModuleInterop": true
。
然后正常导入:
import TelegramBot from 'node-telegram-bot-api';
const foo = new TelegramBot();