找不到名字'办公室'

Hon*_*iao 2 typescript office-js angular

我在Office.js中使用Angular 4.该项目由Angular CLI创建.

代码很简单:

// declare const Office: any;
// With the line above, the app runs perfect

Office.initialize = function () {
  platformBrowserDynamic().bootstrapModule(AppModule);
};
Run Code Online (Sandbox Code Playgroud)

我收到了错误

找不到名字'办公室'.

我已经做了 npm install --save-dev @types/office-js

我的tsconfig.json文件:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

更新1:

关注@MahmoodSajjadi建议,之后npm install --save @microsoft/office-js和使用

import { Office } from '@microsoft/office-js';
Run Code Online (Sandbox Code Playgroud)

得到此错误:

/my-app/src/main.ts中的错误(3,24):文件'/my-app/node_modules/@types/office-js/index.d.ts'不是模块.

./src/main.ts中的错误找不到模块:错误:无法解析'/ my-app/src'中的'office-js'

@ ./src/main.ts 3:0-35
@ multi webpack-dev-server/client?http:// localhost:4200 ./src/main.ts

在package.json中,实际上它是"@microsoft/office-js": "0.0.0",不确定这是一个正确的包.


更新2:

根据迈克尔的回答,似乎NPM版本还没准备好,我将继续使用CDN版本.谢谢大家的帮助!

小智 9

看起来你仍然需要指定office-js应该使用的类型.打开src/tsconfig.app.json并添加office-js到types数组,如果以前是一个空数组,它应该是这样的:

"types": [
  "office-js"
]
Run Code Online (Sandbox Code Playgroud)

接下来,tsc -p tsconfig.json在尝试再次构建项目之前,需要从项目目录中运行该命令.