我在 Office 加载项中使用 TypeScript,并且我想专门使用 async/await 函数。该项目无法编译,并显示“TS2468 TypeScript 无法找到全局值‘Promise’”。
我在这里读到我必须为 Promise 创建一个 polyfill,但到目前为止还无法弄清楚如何让一个 polyfill 在 Visual Studio 2017 中工作。我正在尝试使用 core-js,并将其安装在使用 npm install core-js 到项目。我可以看到 core-js 安装在 node_modules 下。 npm 还创建了一个包含以下内容的 package.json 文件:
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"core-js": "^2.5.3"
}
}
这是我的 tsconfig.json 文件:{
"compilerOptions": {
"skipLibCheck": true,
"moduleResolution": "node"
},
"exclude": [
"node_modules"
]
}
I have require('core-js');
在 FunctionFile.ts 顶部声明,但错误仍然存在。
我遵循了这个问题中提供的指导:TypeScript 版本中的 Office Addins 文件不起作用 https://stackoverflow.com/questions/44461312/office-addins-file-in-its-typescript-version-doesnt-work
使用我根据此链接创建的相同加载项:https://learn.microsoft.com/en-us/office/dev/add-ins/develop/convert-javascript-to-typescript https://learn.microsoft.com/en-us/office/dev/add-ins/develop/convert-javascript-to-typescript
我将以下内容添加到我的测试 TypeScript 文件中:
(function () {
Office.initialize = function (reason) {
(window as any).Promise = OfficeExtension.Promise;
};
})();
async function test() {
return 'hello';
}
我在构建项目时仍然遇到同样的错误。 “TS2468 TypeScript 无法找到全局值‘Promise’。”我也尝试过(window as any).Promise = OfficeExtension.Promise;
在顶部。