为什么我不能在打字稿中为Winston类型添加属性?

时间:2019-08-23 07:40:24

标签: typescript

我在项目中创建了custom-typings.d.ts,我只想向Logger interface添加属性。

在我的custom-typings.d.ts中添加我的something属性:

declare namespace winston {
    interface Logger {
        something: string;
    }    
}

当我输入:const { something } = logger.info('blabla');

我得到的错误是Property 'something' does not exist on type 'Logger'.

(在javascript中,我使用该字段覆盖了返回__proto__类型)

1 个答案:

答案 0 :(得分:1)

您是否已将tsconfig.json文件更新为look for your types

更新
您的问题是声明类型的方式。 您的.d.ts文件应如下所示:

export {};
declare module "winston" {
  interface Logger {
    something: string;
  }
}

请注意,第一行export {};是必须的,因此该文件将被视为模块。第二个变化是您重新声明模块“ winston”,而不是名称空间。