Javascript 对排版脚本设置程序don';t返回函数,尽管关联的getter可以工作

Javascript 对排版脚本设置程序don';t返回函数,尽管关联的getter可以工作,javascript,typescript,Javascript,Typescript,我不知道为什么,但是我写的一个二传手在我叫它的时候没有被认出 下面是抛出的错误: TypeError:Bridge.Config.middleware不是一个函数 以下是打字脚本: set middleware(val: any) { // should be function or function[] this.props.exceptions.middleware = val; } get middleware() { return this.props.exceptions.mi

我不知道为什么,但是我写的一个二传手在我叫它的时候没有被认出

下面是抛出的错误:

TypeError:Bridge.Config.middleware不是一个函数

以下是打字脚本:

set middleware(val: any) { // should be function or function[]
  this.props.exceptions.middleware = val;
}
get middleware() {
  return this.props.exceptions.middleware;
}
以下是生成的JS:

Object.defineProperty(ConfigService.prototype, "middleware", {
    get: function () {
        return this.props.exceptions.middleware;
    },
    set: function (val) {
        this.props.exceptions.middleware = val;
    },
    enumerable: true,
    configurable: true
});
测试:

// properly prints value
console.log(Bridge.Config.middleware);

// throws above-mentioned type error
Bridge.Config.middleware(fn);
我如何执行(编译到es5):
tsc-w--module'commonjs'--target'es5'

您创建的是一个setter,而不是一个函数

您的代码应该是:

Bridge.Config.middleware = fn; 

您创建的是setter而不是函数

您的代码应该是:

Bridge.Config.middleware = fn; 

如果它是一个setter,您应该这样设置:Bridge.Config.middleware=fn;你可以设置它,但你不能像函数一样调用它,我不知道它能起作用。新的打字脚本。谢谢如果它是一个setter,您应该这样设置:Bridge.Config.middleware=fn;你可以设置它,但你不能像函数一样调用它,我不知道它能起作用。新的打字脚本。谢谢