调用Typescript setter don't返回函数,尽管关联的getter可以工作

Calls to Typescript setter don't return a function, although associated getter works

本文关键字:关联 getter 工作 函数 don setter Typescript 返回 调用      更新时间:2023-09-26

我不知道为什么,但当我调用我编写的setter时,它没有被识别。

以下是抛出的错误:

TypeError: Bridge.Config.middleware is not a function

这是打字稿:

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;