Typescript taggede unions - Kan kompilatoren advare deg om utelatte grener?
Jeg er ny i TypeScript. Jeg har følgende kode:
type Circle = { kind: "circle" }
type Rectangle = { kind: "rectangle" }
type Triangle = { kind: "triangle" }
type Shape = Circle | Rectangle | Triangle
function numberOfSides(shape: Shape) {
switch (shape.kind) {
case "circle": return 0;
}
}
For øyeblikket kompilerer dette fint. Finnes det noen konfigurasjon eller alternativ slik at kompilatoren kan advare meg om at jeg mangler tilfeller i switch-setningen min?
Svar #1
Ja, du trenger bare to ting - 1. slå på strictNullChecks eller noImplicitReturns. 2. Marker numberOfSides' returtype som Number. På det tidspunktet vil kompilatoren oppdage at du ikke håndterer alle tilfeller og gi deg denne feilen:
Funksjonen mangler avsluttende return-setning, og returtypen inkluderer ikke 'undefined'.