Closed
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.