对于使用 declare 定义的属性,如何从 TS 输出文件中删除 require?

How can I remove require from TS output file for properties defined with declare?

我有包含外部 JS 库声明的文件: events.ts

export declare EVENT_PLAYER_COMMAND_TEXT: string
... more other events

我在 index.js 中导入此事件:

import { EVENT_PLAYER_COMMAND_TEXT } from '../types/default/events';
on(EVENT_PLAYER_COMMAND_TEXT, () => {})

在输出 JS 文件中我得到:

var event_1 = require('../types/default/events')
on(event_1.EVENT_PLAYER_COMMAND_TEXT, () => {})

但是,库希望我使用 EVENT_PLAYER_COMMAND_TEXT 而没有 event_1 或任何其他变量。所以在JS中的输出结果一定是:

on(EVENT_PLAYER_COMMAND_TEXT, () => {})

我怎样才能做到这一点?

谢谢。

您可以使用 the module setting in tsconfig.

保留 import/export 个语句

任何 es20XXesnext 的值都应保留导入导出语句。

但此设置是为了确保 import/export 语法在您的目标环境中有效。因此,根据您 运行 此代码的位置,此更改可能会完全破坏导入。

就是说,如果 import 被转译为 require 在您的目标环境中完全可以工作,那么 typescript 转译的方式应该可以正常工作。它在功能上应该是相同的。