如何在 Visual Studio 2017 Office 外接程序 TypeScript 项目中 Polyfill Promise

2024-01-17

我在 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;在顶部。


似乎可以通过添加以下内容来解决lib财产给compilerOptions反对你的tsconfig.json file:

"lib": [ "es5", "dom", "es2015.promise" ]

换句话说,更新您的内容ts.config文件看起来像这样:

{
  "compilerOptions": {
    "skipLibCheck": true,
    "moduleResolution": "node",
    "lib": [ "es5", "dom", "es2015.promise" ]
  },
  "exclude": [
    "node_modules"
  ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Visual Studio 2017 Office 外接程序 TypeScript 项目中 Polyfill Promise 的相关文章

  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • 如何读取firebase推送通知内容并在ionic2中触发方法?

    是否可以访问push notificationionic 2 中的内容并在通知到达时执行一堆代码或event fire 我建议使用科尔多瓦插件 firebase https github com arnesson cordova plugi
  • VSCode TypeScript 问题Matcher `$tsc-watch` 未观看

    我试图避免使用watch true in a tsconfig json配置 通过 VSCode 的任务 我正在使用基本问题匹配器 tsc watch但它没有启动tsc构建时处于监视模式 我正在添加gulp支持 我看到有gulp watch
  • 无法使用 Nest CLI 创建新项目

    我正在关注this https docs nestjs com first steps创建 Nest 项目的教程 我已经安装了Nest CLI使用这个命令 npm i g nestjs cli 我使用以下命令检查了本地安装的软件包列表 发现
  • Typescript:通用到特定类型

    我有一个通用类型 type GenericType key string prop1 string prop2 string prop3 number 我使用通用类型来帮助构建 类型检查我创建的新对象 const Obj1 GenericT
  • 如何使用 Typescript 的 socket.IO 客户端类型定义?

    我已经使用 SocketIO 客户端安装了 Typescript 定义 npm install types socket io client 但在 VS Code 中我仍然遇到类型错误 let socket SocketIOClientSt
  • Typescript 接口类型值到联合类型

    是否可以从打字稿中的接口获取包含所有类型值的联合类型 例如 当接口指定为 interface A a string b gt void c number d string e something 结果应该是 type B string gt
  • TypeScript 编译速度极慢 > 12 秒

    只是把它放在那里看看其他人是否也遇到这个问题 我已经使用 webpack 作为我的构建工具 使用 typescript 构建了一个 Angular 2 应用程序 一切都运行良好 但是我注意到 typescript 编译超级超级慢 我现在只有
  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • 如何在VS2017中从.net项目引用netstandard项目?

    我有一个 netstandard2 0 项目 用于与第三方 Web 服务交互 我需要在同一解决方案中引用旧的 net 4 6 2 项目中的该项目 但是当我这样做时 我会收到一堆关于需要引用我定义的类型的错误 例如 我将调用 netstand
  • 使用 React.lazy 时未捕获未定义的错误

    我正在尝试实施基于路由的代码分割 https reactjs org docs code splitting html route based code splitting正如 React 文档中提到的 这是添加延迟实现之前我的应用程序 这
  • Angular 5 将 ElementRef 转换回 Component

    是否可以投回ElementRef到一个组件 我有一种情况 我手里有nativeElement我需要将其转换为组件 看一下console log 我想提取name 我可以把它投回来吗 谢谢https stackblitz com edit a
  • 如何在 firebase.auth 中更新用户电话号码(js,ts)

    我如何更新在 firebase auth 中用于身份验证的用户电话号码 Firebase 给出方法 updatePhoneNumber phoneCredential 但我们需要给予电话凭证 此凭证采用对象 interface AuthCr
  • 使用 ngx-translate 时更改 URL

    当有人使用 ngx translate 单击所选语言时 我尝试更改 URL 我想我应该通过订阅语言更改事件然后修改当前的 url 以反映所选的语言来做到这一点 因为我是新手 所以我不确定是否需要服务来做到这一点 或者可能是另一种解决方法 我
  • 带有 'as' 属性的通用 React TypeScript 组件(能够渲染任何有效的 dom 节点)

    我在下面的示例中按预期工作 我的问题是 无论如何我可以重写它 这样我就不必传递通用的T和as支柱 理想情况下我想通过asprop 并让组件的 prop 接口使用它 这在 TypeScript 中可能吗 export type Props l
  • Typescript:具有排除更改属性修饰符的映射类型

    当使用 Minus 映射类型时 它似乎从属性中删除修饰符 我认为这是由排除类型引起的 但我不确定为什么 我期望 Minus 只从 T 中删除 U 的键 而不更改 T 的属性修饰符 type Minus
  • 单个文件生成器不适用于 Visual Studio 2017 中的 .NET 标准项目

    我已经基于模板 1 实现了单个文件生成器 编译为可安装的 VSIX 输出 包括组件的自动注册 并且 它适用于 VS 2015 和 VS2017 中的经典 NET 项目 它适用于 VS2017 中的 NET Core 项目 但不适用于 VS2
  • “React”在定义之前就被使用了

    我正在使用 create react app typescript eslint 应用程序 在构建过程中出现这样的错误 Line 1 8 React was used before it was defined typescript esl
  • 如何在打字稿中使用外部js

    我通过 Typescript 代码生成 Angular JS 代码 在一种情况下 我需要将外部 JS 文件添加到我的打字稿文件中 并且需要访问 js 文件中的类 我像这样添加js文件
  • 如何为 React 组件参数创建文字类型?

    我创建了 SelectProps 界面 export interface SelectProps value string options string onChange value any gt void 我创建了反应组件

随机推荐