首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VisualStudio2017 Office外接程序TypeScript项目中填充承诺

如何在VisualStudio2017 Office外接程序TypeScript项目中填充承诺
EN

Stack Overflow用户
提问于 2018-01-12 16:07:53
回答 1查看 1.1K关注 0票数 2

我在一个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文件中添加了以下内容:

代码语言:javascript
复制
(function () {
    Office.initialize = function (reason) {
        (window as any).Promise = OfficeExtension.Promise;
    };
})();

async function test() {
    return 'hello';
}

在构建项目时,我仍然会遇到相同的错误。"TS2468 TypeScript找不到全球价值‘承诺’。“我也试了一下,上面是(window as any).Promise = OfficeExtension.Promise;

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-19 18:07:52

似乎可以通过将以下lib属性添加到compilerOptions对象(您的tsconfig.json文件)中来解决这个问题:

代码语言:javascript
复制
"lib": [ "es5", "dom", "es2015.promise" ]

换句话说,更新ts.config文件的内容如下所示:

代码语言:javascript
复制
{
  "compilerOptions": {
    "skipLibCheck": true,
    "moduleResolution": "node",
    "lib": [ "es5", "dom", "es2015.promise" ]
  },
  "exclude": [
    "node_modules"
  ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48229971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档