From vscode: src/vs/workbench/contrib/search/common/searchModel.ts
Code
interface F {
d(): void
}
export function doRemove(dds: F | F[]) {
if (!Array.isArray(dds)) {
dds = [dds]
}
for (let n of dds) {
n.d()
}
return dds
}
Expected behavior:
No error, and n: F at all locations, and dds: F[] at all locations.
Actual behavior:
Types are correct; bogus error: 'F | F[]' must have a 'Symbol.iterator' method that returns an iterator.
Looks like narrowing works as expected, except for errors.
From vscode: src/vs/workbench/contrib/search/common/searchModel.ts
Code
Expected behavior:
No error, and
n: Fat all locations, anddds: F[]at all locations.Actual behavior:
Types are correct; bogus error: 'F | F[]' must have a 'Symbol.iterator' method that returns an iterator.
Looks like narrowing works as expected, except for errors.