如何解决如何在 Typescript 中向 Winston 记录器添加自定义函数?
此问题与 Winston Logger 相关,但适用于任何其他情况。我有以下代码:
import winston,{Logger} from 'winston';
interface CustomLogger extends Logger {
setLoggerContext(userId: string): void;
}
const logger: CustomLogger = winston.createLogger({
transports: [new winston.transports.Console()],});
logger.setLoggerContext = (userId: string) => {
logger.defaultMeta = {userId: userId}
}
export default logger;
但是,const logger 是红色的,并显示一条错误消息:
属性“setLoggerContext”在“Logger”类型中缺失,但在“CustomLogger”类型中需要。ts(2741)
我想保护人们不要把他们想要的 defaultMeta 放在他们想要的东西上,我真的需要为此自定义函数,因为以后我们可能会用别的东西改变 winston,所以我想要一个自定义的上下文设置器。
解决方法
简单地一次构造两个接口的交集(TypeScript 看不出你最终构造了符合 CustomLogger
接口的东西,它只考虑了 {{1} }行):
const logger: CustomLogger
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。