我正在尝试将一种方法动态地注入打字稿中的外部类。 我遇到错误了。
错误TS2339:类型'extclass'不存在属性'modifyLogger'。
代码:
extclass['modifyLogger'] = function(mylogger:any){
}
interface extclass{
modifyLogger(): void;
}
let obj = new extclass();
obj.modifyLogger(log);
上面的代码给我错误
我在这里想念什么?
答案 0 :(得分:0)
您应该使用
extclass.prototype['modifyLogger'] = function(mylogger:any){ }
代替上面的代码。
此外,请在应该接受参数的接口中更正ModifyLogger()的声明。
interface extclass{
modifyLogger(arg: any): void;
}
更新 请参阅更新后的TS Playground
class Extclass {
test() {
}
}
interface Extclass {
modifyLogger(): void;
}
class Test {
constructor() {
Extclass.prototype['modifyLogger'] = function () {
alert('hi');
}
var obj = new Extclass();
obj.modifyLogger();
}
}
var t = new Test();