TypeScript function return type based on input parameter
Conditional Types to the rescue: interface Circle { type: “circle”; radius: number; } interface Square { type: “square”; length: number; } type TypeName = “circle” | “square”; type ObjectType<T> = T extends “circle” ? Circle : T extends “square” ? Square : never; const shapes: (Circle | Square)[] = [ { type: “circle”, radius: 1 … Read more