找不到名称空间“ NodeJS”

时间:2019-10-03 17:09:04

标签: node.js angularjs

如果运行此代码,则会出现错误,找不到命名空间“ NodeJS”。

  public exportExcel(jsonData: any[], excelFileName: string): void {
    //Excel Title, Header, Data
    const header: string[] =  Object.keys(jsonData[0]);
    const data = jsonData;

    //Create workbook and worksheet
    let workbook = new Workbook();
    let worksheet = workbook.addWorksheet(excelFileName);

    //Add Header Row
    let headerRow = worksheet.addRow(header);

    // Cell Style : Fill and Border
    headerRow.eachCell((cell, number) => {
      cell.fill = {
        type: 'pattern',
        pattern: 'solid',
        fgColor: { argb: 'FFFFFF00' },
        bgColor: { argb: 'FF0000FF' }
      }
      cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }
    })
    // Add Data and Conditional Formatting
    data.forEach((element) => {
      let eachRow = [];
      header.forEach((headers) => {
        eachRow.push(element[headers])
      })
      if (element.isDeleted === "Y") {
        let deletedRow = worksheet.addRow(eachRow);
        deletedRow.eachCell((cell, number) => {
          cell.font = { name: 'Calibri', family: 4, size: 11, bold: false, strike: true };
        })
      } else {
        worksheet.addRow(eachRow);
      }
    })

...

node_modules / exceljs / index.d.ts(1648,34)中的错误:错误TS2503:找不到命名空间“ NodeJS”。

2 个答案:

答案 0 :(得分:6)

针对Angular8 +项目的解决方案:

这是已知的bug,是由于exceljs不兼容@types/node的版本引起的。我在Angular 10中也遇到了类似的问题。

存在2种可能的解决方案:

  1. 推荐:使用tsconfig.app.json
  2. 更新您的"types": ["node"]文件

enter image description here

  1. 如果您还可以在没有类型支持的情况下,则只需使用以下导入:
    import * as Excel from "exceljs/dist/exceljs.min.js";

答案 1 :(得分:1)

只需从您的exceljs node_modules中打开index.d.ts文件

enter image description here

并替换此行 字典:缓冲区| NodeJS.TypedArray |数据查看| ArrayBuffer; //仅缩小/充气,默认情况下为空字典

与此

词典:缓冲|数据查看| ArrayBuffer; //仅缩小/充气,默认情况下为空字典

然后继续发球