gpt4 book ai didi

javascript - 使用 Typescript 使用默认导出

转载 作者:行者123 更新时间:2023-11-28 04:42:58 25 4
gpt4 key购买 nike

我想在 TypeScript 项目中使用一个小型 JavaScript 库。 (对于 full example see here )。

JavaScript 库定义了以下内容:

"use strict";

exports.__esModule = true;
exports["default"] = functionOfInterest;
function functionOfInterest(val) { }
module.exports = exports["default"];

这已使用 .d.ts 文件输入为:

export default function functionOfInterest(val: number): void;

在我使用的 typescript 文件中:

import functionOfInterest from "the-package";

functionOfInterest(1); // invoke it.

这被编译为:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var functionOfInterest_1 = require("the-package");
functionOfInterest_1.default.apply(void 0, 1);

此错误:

TypeError: Cannot read property 'apply' of undefined

我的tsconfig.json文件是:

{
"compilerOptions": {
"outDir": "js",
"module": "commonjs",
"declaration": true,
"target": "es5",
"lib": ["es6", "dom"],
"sourceMap": true,
"jsx": "react",
"moduleResolution": "node",
"rootDir": "ts",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true
},
"exclude": [
"node_modules",
"build"
]
}

我确信某处只是一个简单的配置错误,但我目前无法弄清楚。

typescript 2.2.2

最佳答案

你必须使用:

import functionOfInterest = require("the-package");

(functionOfInterest as any)(1);

** 或者 **

您可以将定义文件更改为:

declare function functionOfInterest(val: number): void;
export = functionOfInterest;

然后在不转换为 any 的情况下进行消费:

import functionOfInterest = require("the-package");

functionOfInterest(1);

关于javascript - 使用 Typescript 使用默认导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43616320/

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