Babel.js TypeError:导入npm包时coolArr.printArray不是函数

9udxz4iz  于 2022-12-08  发布在  Babel
关注(0)|答案(2)|浏览(171)

我创建了一个包含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);
    }
  }
}

This link应该会跟随您找到完整的答案。

vfh0ocws

vfh0ocws1#

这应该可行:

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

module.exports = {
    CoolArray,
};

那么它可以这样使用:

import { CoolArray } from 'package-name';

const coolArr = new CoolArray(1, 2, 3);
r3i60tvu

r3i60tvu2#

通过将index.js文件重构为如下所示,我可以使用类函数而不会出现任何错误:

module.exports = class AsyncArray extends Array {
  constructor(...elements) {
    super(...elements);

    this.printArray = () => {
      console.log(this);
    }
  }
}

相关问题