Entonces, sé que hay una manera de crear un alias de tipo para tener propiedades como la respuesta que he visto de otro usuario en esta publicación ( propiedades opcionales de la interfaz TypeScript dependiendo de otra propiedad ) como a continuación:
type Sample = { key1: true, key2?: string, key3: number } | { key1: false, key2?: string, key3?: never }pero, ¿cómo lo haría si las propiedades dependientes están dentro (como en Key2 y Key3 pertenecen a Key1, pero Key3 existiría solo si Key2 es verdadero)? Sería algo como esto:
type Sample = { key1: { key2?: true, key3: number } } | { key1: { key2?: false, key3?: never } }Una opción es simplemente hacer la distinción dentro de esta manera:
type Sample = { key1: { key2?: true, key3: number } | { key2?: false, key3?: never } }Tu código también funciona