analiză statică - Este @typescript-eslint/no-invalid-void-type universal aplicabil?
Încerc să activez regula de lint @typescript-eslint/no-invalid-void-type. Vreau să mă asigur că tot ceea ce semnalează este cu adevărat ceva de care vreau întotdeauna să scap. Doar pentru a-mi verifica înțelegerea. Sunt corecte următoarele afirmații?
- Nu există niciodată un motiv să incluzi
voidîntr-o uniune de tipuri, cum ar fistring | void. - Nu există niciodată vreun motiv să declari o funcție care primește
voidca parametru. (Cu excepția unor lucruri precumthis: void). - Nu există niciodată un motiv să pui
voidîntr-un generic de container, cum ar fiArray<void | string>. - Punerea lui
void | undefinedpe semnătura de retur a unei funcții (de exemplu() => void | undefined) este redundantă. - Dacă ai
() => SomeType | void, ar trebui să folosești în schimb() => SomeType | undefined.
Și motivul pentru care majoritatea acelor afirmații sunt adevărate este că nu poți instanția o valoare de tip void, așa că ceva de genul Array
Răspuns #1
Adaug pentru a dezactiva această regulă pe următorul fragment de cod care mi se pare corect:
register<T>(
requestFunction: (reqId: number) => void,
cancelFunction: (reqId: number) => void | null | undefined, // eslint-disable-line @typescript-eslint/no-invalid-void-type
...
