我目前正在尝试创建一个装饰器来将新方法混合到一个反应组件中。我通过以下方法得到了想要的结果:

function testDecorator(target) {
  const testMethod = function testMethod() {
    return 'successfully mixed testMethod into component';
  };
  target.prototype.testMethod = testMethod;
}

@testDecorator
export class TestComponent extends React.Component<{}, {}> {
// ...
  render() {
    console.log('this.testMethod', this.testMethod());
    // outputs "successfully mixed testMethod into component"
  }
}

这编译并输出预期值,但会产生TrpPultRebug:“TestEngult1”类型不存在属性“TestPosiod”。有办法避免这个错误吗?也就是说,可以通过一个装饰器教关于混合到一个(反作用组件)类中的值的类型化脚本吗?

最佳答案

现在,除了使用casting toany或定义了此方法的接口删除类型检查之外,无法忽略此错误。
这是挂起的请求:Class Decorator Mutation

关于javascript - 使用Typescript时,如何创建类装饰器以将新方法混合到React组件中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39202671/

10-09 14:44