用于导出 class 函数的 es6 访问器

es6 accessor for export class function

我开始使用带有 ES7 的 Aurelia,但我不知道如何在需要参数列表时创建一个函数 public。

这个有效:

export class dummy{
  get doSomething(){
    return "something";
  }
}

dummy.doSomething()

但是如果我将函数修改为具有参数列表,则会出现错误:

get doSomething(x){
    ...
ERR: A 'get' accessor cannot have parameters.

我尝试了很多方法都没有用,谷歌搜索也没有结果。如何在接受参数和 returns 值的导出 class 中声明 public 函数?

谢谢。

get 声明一个 getter。它们像普通属性一样访问(即不是方法):

var foo = instance.doSomething;

这就是 getter 不能有参数的原因。

如果您不想要那个,而是想要一个方法,请将其删除:

export class dummy{
  doSomething(x){
    return "something";
  }
}

如果您只是将 class 用作 "method bag",即您不打算创建它的多个实例,请改用对象:

export var dummy = {
  doSomething(x){
    return "something";
  }
};

es6 中 dummy 的一些例子:

dummy.js

export class Dummy{
  get myGetter() {
    return '456'
  }
}

Dummy.doSomething = (x) => {
    return "something";
}

然后

import {Dummy} from 'dummy'
console.log(Dummy.doSomething(123)); // => "something"
let myDummy = new Dummy();
console.log(myDummy.myGetter); // => "456"