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