在typescript中初始化Office.initialize
我有一个Office加载项,希望在其中放置Office.initialize方法,以确保在开始使用Office API之前初始化Office。所以我把下面的代码放在这里:在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 = () => {
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附加模块的用户,它将起作用
我希望能帮助你们所有人 是的,看起来这就是问题所在。我添加了这个包,现在它正在工作。非常感谢。