Closed
Description
Bug Report
π Search Terms
π Version & Regression Information
4.5.0-dev.20210930
β― Playground Link
Playground link with relevant code
π» Code
interface Foo {
foo: string|undefined
}
type Str<T extends string> = T
type Bar<T> =
T extends Foo
? T['foo'] extends string
// Type 'T["foo"]' does not satisfy the constraint 'string'.
// Type 'string | undefined' is not assignable to type 'string'.
// Type 'undefined' is not assignable to type 'string'.(2344)
? Str<T['foo']>
: never
:never
π Actual behavior
T['foo']
is not being narrowed to string
π Expected behavior
T['foo']
is narrowed to string