Typescript 如何使用动态导入异步导入模块的导出函数并调用它?
在promise的异步回调函数中Typescript 如何使用动态导入异步导入模块的导出函数并调用它?,typescript,es6-promise,typescript2.0,dynamic-import,Typescript,Es6 Promise,Typescript2.0,Dynamic Import,在promise的异步回调函数中 promise.then(async callbackResultValue => { //here }) 我试过了 const browserd = await import('browser-detect'); if (typeof browserd === 'function') { const browserinfo = browserd(); } 得到: [ts]无法调用其类型缺少调用签名的表达式。 类型“从不”没有兼容的调用签名
promise.then(async callbackResultValue => { //here })
我试过了
const browserd = await import('browser-detect');
if (typeof browserd === 'function') {
const browserinfo = browserd();
}
得到:
[ts]无法调用其类型缺少调用签名的表达式。
类型“从不”没有兼容的调用签名
然后我试着:
const browserd:Function = await import('browser-detect');
得到:
[ts]类型“导入类型”(“
”不可分配
到类型“Function”。类型“typeof”中缺少属性“apply”
导入(“
”)
我正在努力解决同样的问题,并发现返回的承诺中的对象可能不是函数本身,而是一个具有名为
default
的属性的对象,其值就是您想要的函数
在我写这篇文章时,我仍然不完全理解导出的所有细微差别,但这段代码对我来说很有用:
import('moduleWithADefaultExportOfAFunction')
.then(theImport => theImport.default());
使用它的目的是什么?@OPV我当前的用例是有条件地加载一个模块,该模块使用/依赖于并非所有目标运行时都支持的API。