Bug Report
🔎 Search Terms
Circular type parameter constraint, intellisense.
Related - #40439
🕗 Version & Regression Information
Tested with version 4.3.2
⏯ Playground Link
Link
💻 Code
declare const m: <T extends M<T>>(m: T) => T
type M<Self, K = Exclude<keyof Self, "k">> =
{ a?: number
, b?: number
, c?: number
, d?: number
, k?: K
}
// :)
m({
a: 1,
b: 2,
x: 3,
// expected suggesstions: c, d, k
// actual suggesstions: c, d, k
})
// :(
m({
a: 1,
b: 2,
x: 3,
k: "a",
// expected suggesstions: c, d
// actual suggesstions: none
})
🙁 Actual behavior
In second function call, intellisense suggested no properties
🙂 Expected behavior
In second function call, intellisense should suggest properties c and d