statisk analys - Är @typescript-eslint/no-invalid-void-type universellt tillämplig?
Jag tittar på att aktivera lint-regeln @typescript-eslint/no-invalid-void-type. Jag vill försäkra mig om att allt den flaggar verkligen är något jag alltid vill bli av med. Bara för att kontrollera min förståelse. Är följande påståenden korrekta?
- Det finns aldrig någon anledning att inkludera
voidi en typunion, somstring | void. - Det finns aldrig någon anledning att deklarera en funktion som tar
voidsom parameter. (Förutom för något somthis: void). - Det finns aldrig någon anledning att sätta
voidi en containergenerisk, somArray<void | string>. - Att sätta
void | undefinedpå en funktions returtyp (t.ex.() => void | undefined) är överflödigt. - Om du har
() => SomeType | void, bör du använda() => SomeType | undefinedistället.
Och anledningen till att de flesta av dessa påståenden är sanna är att du inte kan instansiera ett värde av typen void, så något som Array
Svar #1
Jag lägger till för att inaktivera denna regel på följande kodfragment som ser korrekt ut för mig:
register<T>(
requestFunction: (reqId: number) => void,
cancelFunction: (reqId: number) => void | null | undefined, // eslint-disable-line @typescript-eslint/no-invalid-void-type
...
