我在Typescript中编写了一些代码,但是我遇到了一个问题,导入的函数没有被识别为函数。路径很好,VSCode会通过链接到实用程序文件来显示定义。
这里显示的错误是我的设置:
import {addElement} from "../../Utilities/scanBLE";
test() {
addElements("first")
.then(
function (val) {
console.log("second*");
return addElements("second");
})
.then(
function (val) {
console.log("third*");
return addElement("third");
});
}
function addElements(elementText: string) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve();
}, 5000);
})
.then(function (val) {
console.log(elementText)
});
}
export function addElement(elementText: string) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve();
}, 5000);
})
.then(function (val) {
console.log(elementText)
});
}
这是日志:
首先(./Personal-App/app/Components/Home/home.component.js:95:17)
秒*(./Personal-App/app/Components/Home/home.component.js:63:21)
秒(./Personal-App/app/Components/Home/home.component.js:95:17)
第三*(./Personal-App/app/Components/Home/home.component.js:67:21)
EXCEPTION:错误:未捕获(承诺):
TypeError:scanBLE_1.addElement不是函数(./Personal-App/node_modules/@angular/core/src/facade/lang.js:370:13) STACKTRACE :( ./Personal-App/node_modules/@angular/core/src/facade/lang.js:370:13) 错误:未捕获(在承诺中):TypeError:scanBLE_1.addElement不是函数
编译的JS看起来像这样:
var scanBLE_1 = require("Utilities/scanBLE");
test() {
addElements("first")
.then(function (val) {
console.log("second*");
return addElements("second");
})
.then(function (val) {
console.log("third*");
return scanBLE_1.addElement("third");
});
};
function addElement(elementText) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve();
}, 5000);
})
.then(function (val) {
console.log(elementText);
});
}
exports.addElement = addElement;
//# sourceMappingURL=scanBLE.js.map
出了什么问题?为什么同一个文件中的函数有效,而不是导入的精确副本?
答案 0 :(得分:0)
你能试试吗
module.exports = addElement;
用于导出{}
从“../../ Utilities / scanBLE”;
导入addElement此致 查理