-
Notifications
You must be signed in to change notification settings - Fork 13k
Closed
Labels
BugA bug in TypeScriptA bug in TypeScriptFix AvailableA PR has been opened for this issueA PR has been opened for this issue
Milestone
Description
π Version & Regression Information
Every version.
β― Playground Link
Playground link with relevant code
π» Code
function f1(x: `foo-${string}`, y: `${string}-bar`) {
if (x === y) { // Wrongly reports error that types don't overlap (they do, e.g. 'foo-xxx-bar')
}
}
function f2(x: string, y: `foo-${string}` | 'bar') {
if (x === y) {
x; // Narrowed to 'bar', should be `foo-${string}` | 'bar'
}
}
function f3(x: string, y: `foo-${string}`) {
if (x === 'foo-test') {
x; // Narrowed to 'foo-test'
}
if (y === 'foo-test') {
y; // Not narrowed but should be
}
}
π Actual behavior
See above.
π Expected behavior
See above.
uhyo
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptFix AvailableA PR has been opened for this issueA PR has been opened for this issue