javascript - 尽管关联的 getter 可以工作,但对 Typescript setter 的调用不会返回函数

标签 javascript typescript

我不知道为什么,但是当我调用我编写的 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/

相关文章:

javascript - 如何在我的电脑上安装的浏览器上测试移动触摸事件功能?

javascript - 在 Django 中单击时更新包含项目详细信息的页面

javascript - 如何动态删除 HTML 中的空 span 元素

TypeScript 在 RxJS 定义中找不到名称 IPromise

javascript - 使用 if else 更改 Power BI 自定义视觉对象的矩形颜色

javascript - 如何使用 TypeScript 在 React Native 中使用 forwardRef 和 FunctionComponent

javascript - 使用 web dojo 并分配本地包

javascript - AWS SAM 本地 start-api : Set lambda nodejs 12. x 标志(例如 --experimental-modules)?

git - typescript 使用共享库

typescript - 如何合并在 TypeScript 中使用泛型声明的多个对象方法?