**TypeScript Version:** 4.1.0-dev.20201009 & 4.0.3 <!-- Search terms you tried before logging this (so others can find this issue more easily) --> **Search Terms:** deferred conditional assignment not assignable to type **Code** ```ts const doSomething = <T extends boolean>(t: T) => { const a: string = 'foo'; const b: string | undefined = 'bar'; const c: T extends true ? string : (string | undefined) = 'baz' as string; return c; } ``` **Expected behavior:** (`baz` as string) is assignable to `c` as `string` is assignable to both branches of the deferred conditional type. **Actual behavior:** The following error is emitted: ``` Type 'string' is not assignable to type 'T extends true ? string : string | undefined'.ts(2322) ``` **Playground Link:** https://www.typescriptlang.org/play?ts=4.1.0-dev.20201009#code/FAYw9gdgzgLgBAEzAZTAWwKYwBYEsIDmcAvHADwAqcGAHjBhAlHAEZhgA2GAhhAHwAKGAC44FAJQk+cAN7A4ccNHjdRsAE74ipAOQAzdjoDc8xZFis1MTYTgAfOAFdGGPfgwIScHS27rjpkoWIKJUtPSMzNaOGHAA-HAaWnCiAkm2Ds4Iru4Ikrq+AF4BCupYjuoQiiYAvkA **Related Issues:** #39364 #39577