在TypeScript中,可以通过类型安全的方式增强"this"。以下是一些方法:
class MyClass {
private value: number = 10;
public myMethod = (): void => {
console.log(this.value);
}
}
const instance = new MyClass();
instance.myMethod(); // 输出:10
class MyClass {
private value: number = 10;
public myMethod(): void {
console.log(this.value);
}
}
const instance = new MyClass();
const boundMethod = instance.myMethod.bind(instance);
boundMethod(); // 输出:10
function BindThis(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor {
const originalMethod = descriptor.value;
descriptor.value = function(...args: any[]): any {
return originalMethod.apply(this, args);
};
return descriptor;
}
class MyClass {
private value: number = 10;
@BindThis
public myMethod(): void {
console.log(this.value);
}
}
const instance = new MyClass();
instance.myMethod(); // 输出:10
这些方法可以在TypeScript中通过类型安全的方式增强"this",确保在使用"this"时能够正确地指向预期的对象。
领取专属 10元无门槛券
手把手带您无忧上云