【问题标题】:Office.initialize in typescriptOffice.initialize 在打字稿中
【发布时间】:2018-12-21 21:41:02
【问题描述】:

我有一个 Office 插件,我想在其中放置 Office.initialize 方法以确保在我开始使用 Office API 之前初始化 Office。所以我放了以下代码:

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { AppView } from './View/AppView';

(function () {

    Office.initialize = () => {
        console.log("Office initialized");
        renderApp();
    }

    const renderApp = () => {

        ReactDOM.render(
            <AppView/>,
            document.getElementById('root')
        );
    }
})();

我在相应的 cshtml 文件中提供 Office CDN URL。但在这个文件中,我收到错误“TS2304:找不到名称“Office”。”

如果我使用 Yo Office 生成示例 add IN 项目,我没有错误,但在这里我一直收到此错误。谁能告诉我我错过了什么?

【问题讨论】:

    标签: typescript office-js


    【解决方案1】:

    你做过“npm install --save-dev @types/office-js”吗?那应该为您提供正确的包裹。 请注意,您无需在代码中导入任何内容即可使用,因为 Office 在全局级别声明其变量。

    【讨论】:

    • 是的,看起来这就是问题所在。我添加了这个包,现在它正在工作。谢谢。
    【解决方案2】:

    消息 error TS2304: Cannot find name 'Office' 可以使用 main.ts 文件解决,如下所示:

    /// <reference path="../node_modules/@types/office-js/index.d.ts" />
    import { enableProdMode } from '@angular/core';
    
    import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
    import { AppModule } from './app/app.module';
    
    import { environment } from './environments/environment';
    
    if (environment.production) {
      enableProdMode();
    }
    
    const timer = {};
    
    function startInterval(timer) {
      timer.id = setInterval(() => {
        if (Office !== undefined) {
          Office.initialize = (reason) => {
            platformBrowserDynamic().bootstrapModule(AppModule).catch(error => console.error(error));
          };
          stopInterval(timer.id);
        }
      }, 1000);
    }
    
    function stopInterval(id) {
      clearInterval(id);
    }
    
    startInterval(timer);
    

    它适用于使用 Angular 创建新 Office 插件 的人,而不是 generator-office 包(yo office )。

    希望对你们(所有人)有所帮助!

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2022-01-09
      • 2018-03-10
      • 2017-08-20
      相关资源
      最近更新 更多