diff --git a/types/ansi/ansi-tests.ts b/types/ansi/ansi-tests.ts index 5d8e73e8ec..09d003a563 100644 --- a/types/ansi/ansi-tests.ts +++ b/types/ansi/ansi-tests.ts @@ -20,5 +20,5 @@ Object.keys({ , brightCyan: 96 , brightWhite: 97 }).forEach((color) => { - cursor[color]().bold().write(`Hello, bold ${color.replace(/([a-z])([A-Z])/g, (_: string, l: string, u: string): string => `${l} ${u.toLowerCase()}`)} world!\n`).reset(); + (<{ [key: string]: (..._: any[]) => ansi.Cursor }> cursor)[color]().bold().write(`Hello, bold ${color.replace(/([a-z])([A-Z])/g, (_: string, l: string, u: string): string => `${l} ${u.toLowerCase()}`)} world!\n`).reset(); }); diff --git a/types/ansi/index.d.ts b/types/ansi/index.d.ts index cd1181b5d9..e050aa7c22 100644 --- a/types/ansi/index.d.ts +++ b/types/ansi/index.d.ts @@ -168,11 +168,13 @@ declare namespace ansi { brightWhite(): Cursor; } - /* Removed index signatures due to conflicts. Now you have to - * add them in consumer code: - * - * <{ [key: string]: (..._: any[]) => Cursor }> myCursorOrColorer; - */ + interface Cursor { + [key: string]: ((...anything: any[]) => Cursor) | Colorer; + } + + interface Colorer { + [key: string]: (...anything: any[]) => (Cursor | Colorer); + } } export = ansi;