1

我编写了一个 TS 文件,该文件加载到第 3 方包中,使用import XXX { YYY, ABC, 123 }from 'XXX';

它将编译为 CommonJS 没有问题,这没关系。但我想把它编译成一个 ESModule。我在我的 TS 配置文件中将targetandmodule设置更改为esnext,它确实可以编译,但是,当我运行该文件时,它会出错说:

SyntaxError: Named export 'ABC' not found. The requested module 'XXX' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

import pkg from 'XXX';
const { ABC } = pkg;

是否有任何设置可以用来告诉 Typescript 将导入转换为错误消息中显示的导入类型?

4

1 回答 1

0

您可能想尝试nodenext而不是esnext设置module。这目前是实验性的,但它似乎可以满足您对CommonJS interop的需求。

我自己没有尝试过,所以我不能保证它会起作用。

于 2022-03-01T11:28:12.660 回答