我不知道为什么,但是当我调用我编写的 setter 时,它没有被识别。
这是抛出的错误:
TypeError: Bridge.Config.middleware is not a function
这是 typescript :
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;
关于javascript - 尽管关联的 getter 可以工作,但对 Typescript setter 的调用不会返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666286/