【问题标题】:error TS2552: Cannot find name 'VBArray'. in angular错误 TS2552:找不到名称“VBArray”。在角度
【发布时间】:2018-10-25 08:02:46
【问题描述】:

我有如下代码

import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
toJSArray(vba) {
            var vbarray = new VBArray(vba);
            var d = vbarray.dimensions();

            var dims = [];
            var base = [];
            var params = [];

            for (var i = 1; i <= d; i++) {
                dims.push(vbarray.ubound(i) - vbarray.lbound(i) + 1);
                base.push(vbarray.lbound(i));
                params.push(vbarray.lbound(i));
            }
...
}

因为 VBArray 不是内置的。我使用以下 cmd 来消除编译时错误。

npm install --save @types/windows-script-host

但是当我进行构建时,它会给我一个错误,例如“找不到名称 VBArray” 我缺少什么或如何解决此问题??

【问题讨论】:

  • 此对象是 Microsoft 扩展,仅在 Internet Explorer 中受支持。

标签: excel angular vba typescript npm-install


【解决方案1】:

在您的导入下方添加declare const VBArray:any;。这将处理编译错误。当然,您必须注意运行时存在的对象。

【讨论】:

    【解决方案2】:

    在 tsconfig.app.json 文件中,您需要在类型中添加“window-script-host”

    {
     "extends": "../tsconfig.json",
    "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "types": ["windows-script-host"],  <-- add this
     },
    "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
    ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-07
      • 2016-12-27
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 2017-09-29
      • 2021-08-15
      相关资源
      最近更新 更多