我有一个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项目,那么我没有错误,但是在这里我始终遇到此错误。有人可以告诉我我想念什么吗?
答案 0 :(得分:2)
您是否完成了“ npm install -save-dev @ types / office-js”?那应该给您正确的包裹。 请注意,您不需要在代码中导入任何内容即可正常工作,因为Office在全局级别声明了其变量。
答案 1 :(得分:0)
消息错误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外接程序的人员)。
希望对您有帮助!