TypeError: coolArr.在导入npm包时,printArray不是一个函数



我用index.js创建了一个包,看起来像这样:

module.exports = class CoolArray extends Array {
printArray() {
console.log(this);
}
}

然后使用babel使用es2015语法编译代码。

将我的包链接到我的测试文件夹后,我可以导入和使用我的类,就像这样:

import CoolArray from 'package-name';
const coolArr = new CoolArray(1, 2, 3);

但是,我不能在coolArr对象上使用任何类函数。

coolArr.printArray()给出了错误TypeError: coolArr.printArray is not a function。我做错了什么?


好了,我找到解决办法了。我的index.js文件现在看起来像这样:

module.exports = class AsyncArray extends Array {
constructor(...elements) {
super(...elements);
this.printArray = () => {
console.log(this);
}
}
}

这个链接应该跟着你找到完整的答案。

应该可以:

class CoolArray extends Array {
printArray() {
console.log(this);
}
}
module.exports = {
CoolArray,
};

那么它可以这样使用:

import { CoolArray } from 'package-name';
const coolArr = new CoolArray(1, 2, 3);

像这样重构我的index.js文件,使我能够使用类函数而不会出现任何错误:

module.exports = class AsyncArray extends Array {
constructor(...elements) {
super(...elements);
this.printArray = () => {
console.log(this);
}
}
}

相关内容

  • 没有找到相关文章

最新更新