For example,
function pinoPrettyTransport(opts: PrettyOptions): PrettyStream {
return PinoPretty({
...opts,
translateTime: 'UTC:yyyy-mm-dd"T"HH:MM:ss.l"Z"',
customPrettifiers: {
level: (_level, _levelKey, _log, { labelColorized }) => labelColorized.toLowerCase(),
},
})
}
...leads to
error TS2322: Type '{ level: (_level: string | object, _levelKey: string, _log: object, { labelColorized }: PrettifierExtras<LevelPrettifierExtras>) => string; }' is not assignable to type 'Record<string, Prettifier<object>> & { level?: Prettifier<LevelPrettifierExtras> | undefined; }'.
Type '{ level: (_level: string | object, _levelKey: string, _log: object, { labelColorized }: PrettifierExtras<LevelPrettifierExtras>) => string; }' is not assignable to type 'Record<string, Prettifier<object>>'.
Property 'level' is incompatible with index signature.
Type '(_level: string | object, _levelKey: string, _log: object, { labelColorized }: PrettifierExtras<LevelPrettifierExtras>) => string' is not assignable to type 'Prettifier<object>'.
Types of parameters '__3' and 'extras' are incompatible.
Type 'PrettifierExtras<object>' is not assignable to type 'PrettifierExtras<LevelPrettifierExtras>'.
Type '{ colors: Colorette; }' is missing the following properties from type 'LevelPrettifierExtras': label, labelColorized
115 customPrettifiers: {
~~~~~~~~~~~~~~~~~
It seems since Record<string, Prettifier> doesn't restrict what keys it can have, Prettifier must be assignable to Prettifier<LevelPrettifierExtras>?
I'm new to TypeScript so maybe it's me that's using it wrong. Please help, thanks!
Edit: I'm using TypeScript v4.8.4, Node.js v18.9.1.
For example,
...leads to
It seems since
Record<string, Prettifier>doesn't restrict what keys it can have,Prettifiermust be assignable toPrettifier<LevelPrettifierExtras>?I'm new to TypeScript so maybe it's me that's using it wrong. Please help, thanks!
Edit: I'm using TypeScript v4.8.4, Node.js v18.9.1.