**TypeScript Version:** 2.92 **Search Terms:** did you mean spelling suggestion same **Code** ```ts type NonVoid = Object | object; type Something<T> = { test: string } & (T extends NonVoid ? { requiredWhenNonVoid: T } : { requiredWhenNonVoid?: undefined }); function testFunc2<A extends NonVoid>(a: A): Something<A> { return { test: 'test', requiredWhenNonVoid: a // ~~~~~~~~~~~~~~~~~~~ }; } ``` **Expected behavior:** Probably no error, or at least not this error suggestion **Actual behavior:** ``` clipboard.ts:12 requiredWhenNonVoid: a ~~~~~~~~~~~~~~~~~~~~~~ TS2322: Type '{ test: string; requiredWhenNonVoid: A; }' is not assignable to type 'Something<A>'. Object literal may only specify known properties, but 'requiredWhenNonVoid' does not exist in type 'Something<A>'. Did you mean to write 'requiredWhenNonVoid'? ``` There's no spelling error here -- the `requiredWhenNonVoid` being cited is the same `requiredWhenNonVoid` being suggested 🤡 **Playground Link:** [Link](http://www.typescriptlang.org/play/#src=interface%20Foo%20%7B%20hello%3A%20string%20%7D%3B%0A%0Afunction%20bar1(...foos%3A%20Foo%5B%5D)%20%7B%0A%20%20%20%20bar2(...foos)%3B%0A%7D%0A%0Afunction%20bar2(foo1%3A%20Foo)%3B%0Afunction%20bar2(foo1%3A%20Foo%2C%20foo2%3A%20Foo)%3B%0Afunction%20bar2(...foos%3A%20Foo%5B%5D)%20%7B%0A%20%20%20%20return%3B%0A%7D%0A) **Related Issues:** Nope