Open
Description
π Search Terms
"intellisense template literal", "intellisense property union"
π Version & Regression Information
- This is the behavior in every version I tried (v4.9.5, v5.8.2)
β― Playground Link
No response
π» Code
I didn't include a playground link since it's an intellisense issue.
type A = {
id: `A:${string}`;
a: number;
};
type B = {
id: `B:${string}`;
b: number;
};
function foo<T extends A | B>(item: T): void {}
foo({ id: "B:" /* auto-complete here */ });
π Actual behavior
When you trigger intellisense, it suggests all the property names of the union, even if it could already narrow it based on what you've typed so far:
If id
is a literal rather than a template literal type, the suggestions are properly narrowed.
π Expected behavior
I think the property suggestions should be limited to the narrowed type, similar to if the discriminant is an ordinary string literal.
Additional information about the issue
No response