diff --git a/pino.d.ts b/pino.d.ts index 895bc4e39..b681ee8fe 100644 --- a/pino.d.ts +++ b/pino.d.ts @@ -80,7 +80,7 @@ interface LoggerExtras extends EventEmitter { * @param options: an options object that will override child logger inherited options. * @returns a child logger instance. */ - child(bindings: pino.Bindings, options?: ChildOptions): pino.Logger; + child(bindings: pino.Bindings, options?: ChildOptions): pino.Logger; /** * This can be used to modify the callback function on creation of a new child. diff --git a/test/types/pino.test-d.ts b/test/types/pino.test-d.ts index dbfd0852d..6ae04f542 100644 --- a/test/types/pino.test-d.ts +++ b/test/types/pino.test-d.ts @@ -329,3 +329,15 @@ pino({ crlf: true, }); +const customLevels = { foo: 99 }; + +const customLevelLogger = pino({ customLevels }); + +type CustomLevelLogger = typeof customLevelLogger +type CustomLevelLoggerLevels = pino.Level | keyof typeof customLevels + +const fn = (logger: Pick) => {} + +const customLevelChildLogger = customLevelLogger.child({ name: "child" }) + +fn(customLevelChildLogger); // missing foo typing