Learn TypeScript Help

Nesting Conditional Types

Mais combinações de tipos complexos podem ser descritas por nesting conditional types. Um conditional type resulta tipos que podem ser outro conditional type e o TSC irá seguir a corrente de expressões até que alcance resultados não condicionais

Código:

import { City, Person, Product, Employee } from "./dataTypes"; type resultType<T extends boolean> = T extends true ? string : number; type references = "London" | "Bob" | "Kayak"; type nestedType<T extends references> = T extends "London" ? City : T extends "Bob" ? Person : Product; let firstVal: nestedType<"London"> = new City("London", 8136000); let secondVal: nestedType<"Bob"> = new Person("Bob", "London"); let thirdVal: nestedType<"Kayak"> = new Product("Kayak", 275);

O tipo nestedType<tT> é um nested conditional type que está entre 3 tipos de resultados, baseado nos valores do generic type parameter. Como notado, tipos condicionais complexos podem ser dificeis de entender e isso é especialmente verdade quando eles estão aninhados

15 December 2025