Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何使用动态导入异步导入模块的导出函数并调用它?_Typescript_Es6 Promise_Typescript2.0_Dynamic Import - Fatal编程技术网

Typescript 如何使用动态导入异步导入模块的导出函数并调用它?

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的异步回调函数中

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。