node.js - typescript:使用 'export =' 语法时导出类型
我需要在一个使用 TypeScript export = 语法的代码库中添加一个功能。该代码导出一个函数并向其添加属性:
const f = () => {};
f.someVal = 123;
f.someFunc = () => {};
export = f;
因此用户可以以 CommonJS\ES 风格直接导入该函数:
const f = require('./my_module');
import f from './my_module'; // with esModuleInterop: true
但他也可以在需要时导入这些属性:
import { someVal, someFunc } from './my_module';
我也想导出一个类型,例如,这个模块的用户应该能够:
import type { SomeInterface } from './my_module';
我如何使用 TypeScript 的 export = 语法导出一个类型?
答案#1
你可以使用命名空间来做到这一点:
namespace f {
export const someVal = 123;
export const someFunc = () => {};
export type Test = { hello: string };
}
export = f;
编辑:我刚刚意识到你想做的事情是不可能的。你不能在常量上使用类型。在 GitHub 上已经有一个相关问题(https://github.com/microsoft/TypeScript/issues/18163),但是还没有实现。
