🕗 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.
🕗 Version & Regression Information
Every version.
⏯ Playground Link
Playground link with relevant code
💻 Code
🙁 Actual behavior
See above.
🙂 Expected behavior
See above.