在严格模式下处理此内部回调函数的内部

时间:2018-10-11 14:06:45

标签: typescript strict webix

在严格模式下使用webix(5.4.0)+ typescript(3.1.1)时,我遇到了问题TS2683。

($$('DATE') as webix.ui.datepicker)attachEvent('onChange', function() {
      let val:any = this.getValue() // or let val = ... without any
      // this:this??? () = > not suit for me, btw
      ...
}

错误是:

'this' implicity has type 'any' because it doesn't have a type annotation.

我已经读过How to access the correct `this` inside a callback?,但似乎所有事情都与处理外部this有关,而且我需要声明内部此类。那我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要添加类型注释,以使编译器知道this

的类型。
($$('DATE') as webix.ui.datepicker).attachEvent('onChange', function(this:webix.ui.datepicker) {
    let val:any = this.getValue()    
});

理想情况下,attachEvent方法应该已经在回调类型中指定了this的类型,但是由于不需要手动指定它。