Typescript generic field selection assumes type incorrectly - Theo's Typesafe Cult