**TypeScript Version:** 3.4.0-dev.20190313 **Search Terms:** type information lost during/when/upon/if destructuring a function result tuple **Code** ```ts function foo<T = number>(): [T] { return [42 as any] } const [x] = foo() ``` **Expected behavior:** ```ts const x: number ``` **Actual behavior:** ```ts const x: any ```  [**Playground Link**](http://www.typescriptlang.org/play/index.html#src=function%20foo%3CT%20%3D%20number%3E()%3A%20%5BT%5D%20%7B%0D%0A%09return%20%5B42%20as%20any%5D%0D%0A%7D%0D%0A%0D%0Aconst%20%5Bx%5D%20%3D%20foo()%0D%0Aconst%20y%20%3D%20foo()%0D%0Aconst%20%5Bz%5D%20%3D%20y%0D%0Aconst%20zz%20%3D%20foo()%5B0%5D%0D%0A) **Related Issues:** https://github.com/Microsoft/TypeScript/issues/5416 (an old one)