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'.

Relaterte artikler