Repository: TypeScript
Issue: Please Allow Mixins to function properly with new-able types
Labels: Bug,Help Wanted

# Bug Report

<!--
  Please fill in each section completely. Thank you!
-->

If we declare a new-able type, that is a mixin with the generic parameter it uses, the whole type is not processed.
For example, doing this, won't work
```ts 
// In types.d.ts
namespace test.ts.bug{
    var MyType: {
        new <T>(): T & {
            additional: "somevalue"
        };
    }
}
```
```js
// Then, in VS code, we make use of the type as such
/** @extends {test.ts.bug.MyType<{tsc: "cool"|"sweet"}>} */
class SomeClass extends Object{
}
const myVar = new SomeClass()
```
Suppose you try to use ```myVar```, you won't see the any of the properties corrected listed, and auto-completed.

However, if you declared it like this
```ts
// In types.d.ts
namespace test.ts.working{
    var MyType: {
        new <T>():  {
            additional: "somevalue";
            main: T
        };
    }
}
```
And obviously, did the following in js
```js
// Then, in VS code, we make use of the type as such
/** @extends {test.ts.working.MyType<{tsc: "cool"|"sweet"}>} */
class SomeClass extends Object{
}
const myVar = new SomeClass()
```


then with ```const myVar = new SomeClass()```, the properties ```additional```, and ```main.tsc``` are auto-completed very well.


### 🔎 Search Terms

<!--
  What search terms did you use when trying to find an existing bug report?
  List them here so people in the future can find this one more easily.
-->
mixins new-able newable types

### 🕗 Version & Regression Information
Same version with vs code

<!-- When did you start seeing this bug occur?

"Bugs" that have existed in TS for a long time are very likely to be FAQs; refer to
  https://github.com/Microsoft/TypeScript/wiki/FAQ#common-bugs-that-arent-bugs

If possible, please try testing the nightly version of TS to see if it's already been fixed.
For npm: `typescript@next`
This is also the 'Nightly' version in the playground: http://www.typescriptlang.org/play/?ts=Nightly

Note: The TypeScript Playground can be used to try older versions of TypeScript.

Please keep and fill in the line that best applies:
-->

### ⏯ Playground Link

<!--
  A link to a TypeScript Playground "Share" link which shows this behavior

  The TypeScript Workbench can be used for more complex setups, try
  https://www.typescriptlang.org/dev/bug-workbench/

  As a last resort, you can link to a repo, but these will be slower for us to investigate.
-->
[Playground link with relevant code](https://www.typescriptlang.org/play?#code/FAOwhgtgpgzgDmAxlABAF1mgdGmWBGArgOYoDewKKA9NQCoAWAljCgCYD2sIA5GimEJoOAWkQcIcADZQMKJiBQA1AMopxbKJRQA3MACcUAWQCedE3CgAuctqogoAdxQAeOgD4AFAEobdFABktlQhAmxsTGhMHOBSNmj6hFqhAL7aadq0jCwCQqLikjIYrI5QUlLyiqrqHJraeoam5pYATDYUoQ7Obl6+waFhEVExYHHoiVAA3HYhEGAKfjNpVBkpQA)

### 🙁 Actual behavior
```const myVar = new SomeClass()``` doesn't auto-complete in VS code

<!-- What happened, and why it was wrong -->

### 🙂 Expected behavior
```const myVar = new SomeClass()``` is supposed to have the ```tsc```, and ```additional``` set to true

<!-- What you expected to happen instead, and why -->