网站搜索

当来自 NPM 时扩展 Typescript 定义文件 (.d.ts)


我扩展了 moment 来管理公共假期(基于法国日历)。所以我也扩展了 TypeScript 定义文件,但之前我使用 tsd 和 /// <reference。这工作得相当好。我的 .d.ts 内容如下:

/// <reference path="../moment/moment.d.ts" />

declare module moment {

  interface Moment {
    weekDays(date: Moment): number;
    weekendDays(date: Moment): number;
    addWeekDays(days: number): Moment;
    subtractWeekDays(days: number): Moment;
    isWeekDay(): boolean;
    isWeekendDay(): boolean;
  }

}

现在我切换到了 typings,并且在 tsconfig.json 中引用了 .d.ts。我使用的是它的 npm 包中的 moment 定义,但我的 .d.ts 不再起作用。我改成了这个:

declare namespace moment {
    interface Moment {
        weekDays(date: Moment): number;
        weekendDays(date: Moment): number;
        addWeekDays(days: number): Moment;
        subtractWeekDays(days: number): Moment;
        isWeekDay(): boolean;
        isWeekendDay(): boolean;
    }
}

但这行不通,然后我尝试了这个:

declare module 'moment' {
    interface Moment {
        weekDays(date: Moment): number;
        weekendDays(date: Moment): number;
        addWeekDays(days: number): Moment;
        subtractWeekDays(days: number): Moment;
        isWeekDay(): boolean;
        isWeekendDay(): boolean;
    }
}

这将删除原始时刻的 .d.ts 文件...

我如何扩展这个 .d.ts 文件?