【发布时间】:2019-07-03 00:45:06
【问题描述】:
我正在使用一个 javascript 库来构造一个像这样的对象:
有用的JS.js
function usefulJS() {}
usefulJS.protoype.doAThing = function() {
//does a thing here, returns an object
};
module.exports = new usefulJS();
它有一个像这样的类型定义文件:
有用的JS/index.d.ts
export class usefulJS {
public doAThing(): object;
}
它用于以下打字稿文件:
myTypescript.ts
import {randomOtherThing,usefulJS} from "library-that-includes-usefulJS";
const myObj = usefulJS.doAThing();
但我的打字稿文件中的 .doAThing() 下出现红色下划线,并显示以下消息:
“类型'typeof有用JS'上不存在属性'doAThing'。”
当我在函数调用上使用//@ts-ignore 运行代码时,它可以工作,所以它肯定是打字稿问题而不是javascript 问题。
我的导入有问题吗?我应该如何导入已经构建的对象,而不是对象的原型?
还是库的类型定义有问题?
如果有任何帮助,非打字稿节点中的另一个项目使用此库。它的导入行如下所示:
const usefulJS = requre("library-that-includes-usefulJS").usefulJS;
【问题讨论】:
-
从您的导入语句中删除花括号。
-
嗯。这对于我遗漏的一些细节是不可能的(我实际上是从一个包含有用JS.js 的更大的库中导入的)。我会添加那个细节
标签: javascript typescript import