Files
scriptc/tests/corpus/6446-rest-function-nested-declaration.ts
T
2026-10-20 17:56:44 -05:00

27 lines
602 B
TypeScript

// Nested rest-parameter function declarations passed to a fixed slot.
class Line {
private readonly sink: (m: string) => void;
constructor(sink: (m: string) => void) {
this.sink = sink;
}
emit(m: string): void {
this.sink(m);
}
}
interface Logger {
line: () => Line;
log: (...messages: string[]) => void;
}
function makeLogger(prefix: string): Logger {
return {
line: () => new Line(log),
log,
};
function log(...messages: string[]) {
console.log(prefix, messages.join(" "));
}
}
const logger = makeLogger(">");
logger.log("a", "b");
logger.line().emit("c");