TypeError:无法读取未定义的属性“ push”(将this.array传递给回调函数)

问题描述 投票:0回答:1

如何在TypeScript(ES5 +)中修复此代码,以便readInterface.on()的回调函数可以访问在函数外部声明的lines数组?

const readline = require('readline');
const fs = require('fs');

const readInterface = readline.createInterface({
  input: fs.createReadStream("data.list"),
  output: false,
  silent: true,
  console: false
});

var lines: string[] = [];

readInterface.on('line', function(line) {
  if (line && line.indexOf("#") !== 0) {
    this.lines.push(line);
  }
});

lines.forEach(line => {
  console.log(line);
});
typescript callback this
1个回答
0
投票
readInterface.on('line', line=> {
  if (line.indexOf("#") !== 0 && line) {
    this.lines.push(line);
  }
});

在打字稿中使用箭头功能可帮助您指向正确的this参考。否则,您将引用当前使用的功能。

© www.soinside.com 2019 - 2024. All rights reserved.