首页 > 解决方案 > 如何允许 CommonJS 程序从我的 TypeScript 库中导入而不使用 require().default 并在文本编辑器中自动完成

问题描述

我目前正在开发一个 TypeScript 库,以便在我公司的项目内部使用,这些项目是 JavaScript 和 TypeScript Node 应用程序的混合体。

因此,我希望能够使用 CommonJS 在 JavaScript 中正确导入库的默认类。但是,如果我使用require('...').default.

我之前设法通过在文件末尾添加 a 来使其工作module.exports = MyClass,但是 VSCode 的自动完成似乎没有赶上这一点,在显示方法之前仍然建议使用默认值。

我怎样才能做到这一点,以便我可以通过使用导入我的课程,require('...')同时仍然确保自动完成功能正常工作?

谢谢。

编辑:

为了清楚起见,我想做的是能够做到这一点:

const MyClass = require('MyTypeScriptClass');

代替:

const MyClass = require('MyTypeScriptClass').default;

编辑

我决定export default在从库导出时不使用,因为它似乎是所有其他库所做的。

标签: node.jstypescriptnode-modulescommonjs

解决方案


等效的 TypeScript 应该是这样的:

class MyClass {
}

export = MyClass

export = class MyClass { ...如果喜欢,也可以内联。

(要在 TypeScript 项目中导入这样的导出,您需要设置esModuleInterop标志。)


推荐阅读