在typescript中初始化Office.initialize

在typescript中初始化Office.initialize,typescript,office-js,Typescript,Office Js,我有一个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 = () => {

我有一个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”


如果我使用yooffice生成一个示例外接程序项目,我没有错误,但在这里我得到了一致的错误。有人能告诉我我遗漏了什么吗?

你完成“npm安装-保存dev@types/office js”了吗?这会给你带来合适的包裹。 请注意,由于Office在全局级别声明其变量,因此无需在代码中导入任何内容即可实现此功能。

消息错误TS2304:找不到名称“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而不是generator Office包yo Office创建新Office附加模块的用户,它将起作用


我希望能帮助你们所有人

是的,看起来这就是问题所在。我添加了这个包,现在它正在工作。非常感谢。