Каков тип функции Fat Arrow / Callback? - PullRequest
0 голосов
/ 05 октября 2019

Довольно простой вопрос. Я пришел из 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 Ответ

1 голос
/ 05 октября 2019

используйте React.EventHandler<React.SyntheticEvent> или React.EventHandler<any> в качестве типа возврата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...