Files
scriptc/tests/diagnostics/inferred-callback-drops-satisfies.ts
T
2026-10-20 17:56:44 -05:00

14 lines
471 B
TypeScript

type Plain = { name: string; n: number };
type Item = Plain & { extra?: boolean };
const plain: Plain[] = [{ name: "a", n: 1 }];
function run<T>(fn: () => T): T {
return fn();
}
// `satisfies` checks the return against Plain[] without changing it; the
// extended objects keep `extra` in Node.
const items: Item[] = run(() => {
if (plain.length === 0) return plain;
return plain.map((x) => ({ ...x, extra: true })) satisfies Plain[];
});
console.log(items.length);