2016-07-26 15 views
5

Ich lerne angular 2 und ich habe eine ts-Definition für eine trunkierte Methode geschrieben, die ich in einem meiner Dienste verwenden möchte.Wie man einen Prototyp in Typoskript einbinden

truncate.ts

interface String { 
    truncate(max: number, decorator: string): string; 
} 

String.prototype.truncate = function(max, decorator){ 
    decorator = decorator || '...'; 
    return (this.length > max ? this.substring(0,max)+decorator : this); 
}; 

Wie importiere ich diese in ein anderes Typoskript Modul oder zumindest zur Verfügung stellen global zu nutzen.

Antwort

3

mit Typoskript 2.3.4 in einer ionischen 3 Angular 4 app ich eine Datei namens stringExtensions.ts erstellen und diese

export { } // to make it a module 

declare global { // to access the global type String 
    interface String { 
     truncate(max: number, decorator: string): string; 
    } 
} 

// then the actual code 
String.prototype.truncate = function(max, decorator){ 
    decorator = decorator || '...'; 
    return (this.length > max ? this.substring(0,max)+decorator : this); 
}; 
+0

Warum der Downvote? – Peter

+1

Verwendung von Export {} & deklarieren global {} war magische Soße für mich im Vergleich zu anderen Beispielen ... und dann für den Datensatz, ich musste nicht anderen Import in meinem Anwendungsbereich für andere Beispiele. Danke Peter! – Beej

9

Wie importiere ich dies in ein anderes Typoskript-Modul oder stelle es zumindest für die globale Verwendung zur Verfügung.

Verschieben in eine Datei stringExtenions.ts:

interface String { 
    truncate(max: number, decorator: string): string; 
} 


String.prototype.truncate = function(max, decorator){ 
    decorator = decorator || '...'; 
    return (this.length > max ? this.substring(0,max)+decorator : this); 
}; 

Und die Datei importieren wie:

import "./stringExtensions" 

Mehr

https://basarat.gitbooks.io/typescript/content/docs/types/lib.d.ts.html

+0

diese kompiliert aber in sie die truncate-Methode scheint nicht zu funktionieren – Peter

Verwandte Themen