首页 > 解决方案 > 将符号导出为“module.exports”,但在 TypeScript 中保留类型声明

问题描述

我正在使用 TypeScript 开发一个 node.js 插件。

要求是module.exports直接导出它,例如编译时,index.js应该如下所示:

module.exports = require('./src/plugin.js').default;

我的plugin.ts样子是这样的:

import {Options} from './types';

export default function myPlugin(options?: Partial<Options>): any {
  // ...
}

我可以通过这样写来达到预期的结果index.ts

import myPlugin from './src/plugin';

export = myPlugin;

但是,如果我这样做,该Options类型将不会在类型定义中导出。

而且,不可能将export = module构造与其他类型的导出一起使用。

我希望消费者能够同时导入插件函数及其类型:

import myPlugin = require('@acme/my-plugin');

import {Options} from '@acme/my-plugin';

消费者是否可以从我的模块中导入类型以及它的主要符号?

标签: javascriptnode.jstypescriptcommonjses6-modules

解决方案


推荐阅读