Может ли кто-нибудь помочь мне улучшить мое понимание "условных типов". В документации для Typescript, https://www.typescriptlang.org/docs/handbook/advanced-types.html#conditional -типов они имеют следующий пример:
declare function f<T extends boolean>(x: T): T extends true ? string : number;
// Type is 'string | number'
let x = f(Math.random() < 0.5)
Что я не понимаю, так это зачем это нужно написать это так. Не хватит ли следующего?
declare function f(x : boolean): T extends true ? string : number;