**TypeScript Version:** 3.6.4 **Search Terms:** Partial field conditional matching 3.6.4 conditional partial **Code** ```ts export type QueryType = ( { __typename?: 'TypeOne' } & { a: boolean } ) | ( { __typename?: 'TypeTwo' } & { a: boolean } ) | ( { __typename?: 'TypeThree' } & { a: boolean } ); type PickFromUnion<Union, Typename> = Union extends { __typename?: Typename } ? Union : never; type FirstType = PickFromUnion<QueryType, 'TypeOne'>; ``` **Expected behavior:** FirstType would be of type ` { __typename?: 'TypeOne' } & { a: boolean }` **Actual behavior:** FirstType is of type `QueryType` **Playground Link:** 3.6.3 where it works http://www.typescriptlang.org/play/?ts=3.6.3#code/KYDwDg9gTgLgBDAnmYcCKBXYVEBVmoC8cAFAFBxwDecA+rUigHYCGAtsAPwBccA5PhQB5JsD5wAvnABk1OC14AjCBAA2wFk0lkAlHAA+pCnPqNgrDj36DguAO4RxU2TQVxlajVom6DRyjSmBBZcvAIEuAAWUMBikjJybh7qmto6ANxkZGZwAAoAlgDGANYAYlAQbACqTPkQTAA8NXVMADRwNiEAfHCExs31cKAw5gAmAM4mDMHsoR0zHPGccANavKIAbtiZ2QRwpflQ4zA2vXlFZRXVtfUNmNh4BO3hwqJ8XelAA 3.7 where it does not work (3.6.4 not provided in playground) http://www.typescriptlang.org/play/?ts=3.7-Beta#code/KYDwDg9gTgLgBDAnmYcCKBXYVEBVmoC8cAFAFBxwDecA+rUigHYCGAtsAPwBccA5PhQB5JsD5wAvnABk1OC14AjCBAA2wFk0lkAlHAA+pCnPqNgrDj36DguAO4RxU2TQVxlajVom6DRyjSmBBZcvAIEuAAWUMBikjJybh7qmto6ANxkZGZwAAoAlgDGANYAYlAQbACqTPkQTAA8NXVMADRwNiEAfHCExs31cKAw5gAmAM4mDMHsoR0zHPGccANavKIAbtiZ2QRwpflQ4zA2vXlFZRXVtfUNmNh4BO3hwqJ8XelAA
TypeScript Version:
3.6.4
Search Terms:
Partial field conditional matching
3.6.4 conditional partial
Code
Expected behavior:
FirstType would be of type
{ __typename?: 'TypeOne' } & { a: boolean }Actual behavior:
FirstType is of type
QueryTypePlayground Link:
3.6.3 where it works
http://www.typescriptlang.org/play/?ts=3.6.3#code/KYDwDg9gTgLgBDAnmYcCKBXYVEBVmoC8cAFAFBxwDecA+rUigHYCGAtsAPwBccA5PhQB5JsD5wAvnABk1OC14AjCBAA2wFk0lkAlHAA+pCnPqNgrDj36DguAO4RxU2TQVxlajVom6DRyjSmBBZcvAIEuAAWUMBikjJybh7qmto6ANxkZGZwAAoAlgDGANYAYlAQbACqTPkQTAA8NXVMADRwNiEAfHCExs31cKAw5gAmAM4mDMHsoR0zHPGccANavKIAbtiZ2QRwpflQ4zA2vXlFZRXVtfUNmNh4BO3hwqJ8XelAA
3.7 where it does not work (3.6.4 not provided in playground)
http://www.typescriptlang.org/play/?ts=3.7-Beta#code/KYDwDg9gTgLgBDAnmYcCKBXYVEBVmoC8cAFAFBxwDecA+rUigHYCGAtsAPwBccA5PhQB5JsD5wAvnABk1OC14AjCBAA2wFk0lkAlHAA+pCnPqNgrDj36DguAO4RxU2TQVxlajVom6DRyjSmBBZcvAIEuAAWUMBikjJybh7qmto6ANxkZGZwAAoAlgDGANYAYlAQbACqTPkQTAA8NXVMADRwNiEAfHCExs31cKAw5gAmAM4mDMHsoR0zHPGccANavKIAbtiZ2QRwpflQ4zA2vXlFZRXVtfUNmNh4BO3hwqJ8XelAA