TypeScript 扩展第三方库 moment.js

Kin*_*sin 5 javascript momentjs typescript typescript-typings

我只是想向接口的原型添加一个函数,Moment该函数在使用时始终以相同的方式格式化。我已经尝试过可以在这里找到的内容。

declare module moment {
    export interface Moment {
        myFormat: () => string;
    }
}
Run Code Online (Sandbox Code Playgroud)

在其他一些文件中,实现:

Moment.prototype.myFormat = ():string => { return this.format("DD.MM.YYY"); }
Run Code Online (Sandbox Code Playgroud)

然而,这是行不通的。我只是希望能够打电话moment(aDate).myFormat(),但无法正常工作。

已经尝试使用declare module "moment"和一些变体moment.Moment但仍然相同。

正如在链接中发现的那样,没有declare使用过。但后来我得到了错误

顶级元素所需的“声明”修饰符。

cev*_*vek 2

这是工作

import moment from 'moment';
declare module 'moment' {
   export interface Moment {
     myFormat: () => string;
   }
 }
moment().myFormat(); 
Run Code Online (Sandbox Code Playgroud)