**TypeScript Version:** v3.7-Beta **Search terms :** narrow narrowing down type parameter closure **Code** ```ts function foo(arg: string | undefined) { arg = arg ?? "default"; arg.length // no error const bar = () => { arg.length; // error } } ``` **Expected behavior:** arg should be of type string within the body of the closure. **Actual behavior:** arg is possibly 'undefined' within the body of the closure. **Playground Link:** [Playground link](http://www.typescriptlang.org/play/?ts=3.7-Beta&ssl=1&ssc=28&pln=1&pc=37#code/GYVwdgxgLglg9mABMOcAUBDATgcwFyIDOUWMYOiAPouACYCmwZ9tAlIgN4CwAUIv4mwUAvINxVqAIgbAMIADZRJAbl68BYnADp59clAAWiAPTHEYOInpYscLOoEQExRACNsiUWnbCAfJwcNfiEdPRxDZRMza1ssREDEAF9eZJ4gA)