2016-07-26 2 views
5

Я изучаю угловой 2, и я написал определение ts для метода усечения, который я хочу использовать в одной из моих служб.как включить прототип в машинописный текст

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); 
}; 

Как импортировать это в другой модуль машинопись или, по крайней мере, сделать его доступным для использования во всем мире.

ответ

3

использование машинописного 2.3.4 в Ионных 3 Угловой 4 приложения создать файл под названием stringExtensions.ts и положить это в нем

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

почему downvote? – Peter

+1

using export {} & объявлять глобальный {} был волшебным соусом для меня по сравнению с другими примерами ... а затем для записи, я НЕ должен был делать какой-либо другой импорт в моей области использования в других примерах. Спасибо, Питер! – Beej

9

Как импортировать это в другой модуль машинописного текста или, по крайней мере, сделать его доступным для использования по всему миру.

Переместить его в файл 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); 
}; 

и импортировать файл как:

import "./stringExtensions" 

Больше

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

+0

это компилируется, но метод truncate, похоже, не работает – Peter

Смежные вопросы