我试图用新的动态import()
在打字稿功能,但我得到了以下错误:
TS2712:在ES5 / ES3动态导入调用需要“承诺”的构造。 请确保您有对“无极”的构造函数的声明或者在您的“ES2015”
--lib
选项。
我可能包括ES2015.promise
在我tsconfig LIB如消息表明,但那会让我失去的类型安全,因为我使用蓝鸟承诺。
我知道这是可能使用蓝鸟为async/await
的打字稿,所以我想这也应该相同的方式工作。
该消息也提到了这一点:
请确保你有一个声明为“无极”的构造函数或[...]
是否有可能宣布将用作TS无极构造青鸟构造?
示例代码:
import * as Bluebird from 'bluebird';
// This works
async function exampleAsync(): Bluebird<number> {
const result = await Bluebird.resolve(5);
return result;
}
// This does not
import('jquery').then($ => {
console.log($.fn.jquery);
});
TSConfig:
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"removeComments": true,
"sourceMap": true,
"alwaysStrict": true,
"forceConsistentCasingInFileNames": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"strictNullChecks": true,
"allowJs": true,
"typeRoots": ["node_modules/@types"],
"lib": ["es5", "dom", "es2015.collection"]
},
"exclude": ["node_modules"]
}