Repository: TypeScript
Issue: Typescript failed to expand type in generic for unknown reason
Labels: Bug,Domain: Conditional Types

<!-- 🚨 STOP 🚨 𝗦𝗧𝗢𝗣 🚨 𝑺𝑻𝑶𝑷 🚨

Half of all issues filed here are duplicates, answered in the FAQ, or not appropriate for the bug tracker. Even if you think you've found a *bug*, please read the FAQ first, especially the Common "Bugs" That Aren't Bugs section!

Please help us by doing the following steps before logging an issue:
  * Search: https://github.com/Microsoft/TypeScript/search?type=Issues
  * Read the FAQ: https://github.com/Microsoft/TypeScript/wiki/FAQ

Please fill in the *entire* template below.
-->

<!-- Please try to reproduce the issue with `typescript@next`. It may have already been fixed. -->
**TypeScript Version:**  3.1.3

<!-- Search terms you tried before logging this (so others can find this issue more easily) -->
**Search Terms:**

**Code**

```ts
type Or<T> = T [
    {
        [K in keyof T]: T[K] extends ((...arg:any[])=>any)?
            never:
            K
    } [keyof T]
]

// F is unknown
type F = Or<[
    string,
    number
]>

// F_ is string|number
type F_ = ([
    string,
    number
])[
    {
        [K in keyof ([
            string,
            number
        ])]: ([
            string,
            number
        ])[K] extends ((...arg:any[])=>any)?
            never:
            K
    } [keyof ([
        string,
        number
    ])]
]

```

**Expected behavior:**
I will get the type `string|number` for both case

**Actual behavior:**
The generic failed to expand the type and make `F` as `unknown` for unknown reason, 
while manully inline it in `F_` typed as expected

**Playground Link:** <!-- A link to a TypeScript Playground "Share" link which demonstrates this behavior -->
[link](https://www.typescriptlang.org/play/index.html#src=type%20Or%3CT%3E%20%3D%20T%20%5B%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%5BK%20in%20keyof%20T%5D%3A%20T%5BK%5D%20extends%20((...arg%3Aany%5B%5D)%3D%3Eany)%3F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20never%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20K%0D%0A%20%20%20%20%7D%20%5Bkeyof%20T%5D%0D%0A%5D%0D%0A%0D%0A%2F%2F%20F%20is%20unknown%0D%0Atype%20F%20%3D%20Or%3C%5B%0D%0A%20%20%20%20string%2C%0D%0A%20%20%20%20number%0D%0A%5D%3E%0D%0A%0D%0A%2F%2F%20F_%20is%20string%7Cnumber%0D%0Atype%20F_%20%3D%20(%5B%0D%0A%20%20%20%20string%2C%0D%0A%20%20%20%20number%0D%0A%5D)%5B%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%5BK%20in%20keyof%20(%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20string%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20number%0D%0A%20%20%20%20%20%20%20%20%5D)%5D%3A%20(%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20string%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20number%0D%0A%20%20%20%20%20%20%20%20%5D)%5BK%5D%20extends%20((...arg%3Aany%5B%5D)%3D%3Eany)%3F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20never%3A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20K%0D%0A%20%20%20%20%7D%20%5Bkeyof%20(%5B%0D%0A%20%20%20%20%20%20%20%20string%2C%0D%0A%20%20%20%20%20%20%20%20number%0D%0A%20%20%20%20%5D)%5D%0D%0A%5D%0D%0A%0D%0Avar%20f1%3A%20F_%20%3D%20%2Ffsd%2F%0D%0Avar%20f2%3A%20F%20%3D%20%2Ffsd%2F)
**Related Issues:** <!-- Did you find other bugs that looked similar? -->