gpt4 book ai didi

typescript - 如何在 Typescript 中导入使用 module.exports= 的 CommonJS 模块

转载 作者:搜寻专家 更新时间:2023-10-30 20:34:50 29 4
gpt4 key购买 nike

以下生成有效、可工作的 ES5,但发出以下错误。我正在使用 Typescript 1.7.5,我想我已经阅读了整个语言规范,但我无法弄清楚为什么会产生此错误。

error TS2349: Cannot invoke an expression whose type lacks a call signature.

a.js(默认导出的 ES5 环境模块)

function myfunc() {
return "hello";
}
module.exports = myfunc;

a.d.ts

declare module "test" {
export default function (): string;
}

b.ts

import test = require("test");
const app = test();

b.js(生成 ES5):

var test = require("test");
var app = test()

最佳答案

module.exports 在 CommonJS 模块中导出文字值,但是 export default 表示您正在导出 default 属性,这不是您的 JavaScript 代码实际上做了什么。

在这种情况下正确的导出语法只是export = myfunc:

declare module "test" {
function myfunc(): string;
export = myfunc;
}

关于typescript - 如何在 Typescript 中导入使用 module.exports= 的 CommonJS 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398633/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com