Fat Arrow函数/ Callback的类型是什么?

时间:2019-10-05 15:15:46

标签: javascript reactjs typescript types callback

非常简单的问题。我来自Qt / C ++背景,因此我认为这是明确的好习惯,因此

protected sanityCheck() : void { ... } // Braced and Typepilled
protected sanityCheck() { ... }        // Extremely stupid and dangerous 

好吧,我该如何明确:

protected checkRadio( index : number ) : ????? // "Function" type does not work
{
        return (event: React.MouseEvent) => 
        {
                let radioIndex : HTMLInputElement 
                        = document.getElementsByName(this.question())[index] 
                        as HTMLInputElement;
                radioIndex.checked = true;
                event.preventDefault();
        }
}

我尝试过的大多数类型都导致

Type 'void' is not assignable to type 
'((event: MouseEvent<HTMLLIElement, MouseEvent>) => void) | undefined'.  TS2322

当我检查文档时,它什么也没说。当我检查typeof时,它只是说function。我的印象是我可以定义自己的类型,但是我想一次,一种尽可能具体的类型解决方案。

到目前为止,我能做的最好的事情是any,它是最不明确的类型。

那么我可以为此功能使用的最具体,最明确的类型是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

使用React.EventHandler<React.SyntheticEvent>React.EventHandler<any>作为返回类型