2016-12-27 63 views
0

我如何扩展基础接口并导出它?例如:扩展基础接口并导出它

export interface Date { 
    /** 
    * Original functions 
    */ 
    getTime(): number; 
    /** 
    * My extend functions 
    */ 
    getId(): number; 

} 

Date.prototype.getId = function(): number { 
    return 1; 
} 

如果我要出口日期原型,我收到错误

[TS]房产 '的getId' 不上型 '日期' 存在。

只有我可以手动创建d.ts文件

export interface Date { 
    getTime(): number; 
    getId(): number; 
} 

并将其导入

import {Date} from "myfile"; 

,但如果你想方法添加到Date它的不冷静

回答

2

您需要的原型Global augmentation

// myfile.ts 

export {}; // you need this so the compiler understands that it's a module. 

declare global { 
    interface Date { 
     getId(): number; 
    } 
} 

Date.prototype.getId = function(): number { 
    return 1; 
} 

然后,当您导入此文件,你应该能够使用getId

import "file1"; 
let d = new Date(); 
console.log(d.getId()); 
+0

真棒!这就是我需要的!谢谢! – indapublic