2016-12-27 3 views
0

어떻게 기본 인터페이스를 확장하고 내보낼 수 있습니까? 예를 들어 : 기본 인터페이스 확장 및 내보내기

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

} 

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

내가 날짜 프로토 타입을 내보내려면

, 나는

이 [TS] 속성 'getId가'형 '날짜'에 존재하지 않는 오류가 나타납니다.

만 내가 수동으로 생성되어 있습니다

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

을 제기하고 그것을

import {Date} from "myfile"; 

를 가져 d.ts 그러나 당신이 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

관련 문제