我在一个Office外接程序中使用TypeScript,我希望具体地使用异步/等待函数。该项目无法用"TS2468 TypeScript无法找到全局值‘承诺’“进行编译。
我在这里读到过,我必须为承诺创建一个多边形填充,但是到目前为止还没有能够找到如何在Visual 2017中工作。我正在尝试使用core-js,并使用npm安装core-js将其安装到项目中。我可以看到核心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" ] }
我在require('core-js');的顶部声明了FunctionFile.ts,但是错误仍然存在。
我遵循了这个问题中提供的指导:Office Addins file in its TypeScript version doesn't work
使用基于以下链接创建的相同的外接程序: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找不到全球价值‘承诺’。“我也试了一下,上面是(window as any).Promise = OfficeExtension.Promise;。
发布于 2018-01-19 18:07:52
似乎可以通过将以下lib属性添加到compilerOptions对象(您的tsconfig.json文件)中来解决这个问题:
"lib": [ "es5", "dom", "es2015.promise" ]换句话说,更新ts.config文件的内容如下所示:
{
"compilerOptions": {
"skipLibCheck": true,
"moduleResolution": "node",
"lib": [ "es5", "dom", "es2015.promise" ]
},
"exclude": [
"node_modules"
]
}https://stackoverflow.com/questions/48229971
复制相似问题