Angular 7 Добавление метода расширения к примитивам - PullRequest
0 голосов
/ 08 ноября 2018

Я хотел бы добавить несколько методов к примитивам. У меня есть следующий файл:

строковый extension.ts:

interface String {
    isNullOrEmpty(this: string): boolean;
}

String.prototype.isNullOrEmpty = function (this: string): boolean {
    return !this;
};

У меня есть компонент, который имеет следующий код:

constructor () {
    let a = "asd";
    alert(a.isNullOrEmpty());
}

импорт не добавлен вверху. Когда я запускаю клиент, он падает в этой строке.

a.isNullOrEmpty is not a function

Когда я проверяю код, я вижу, что мой файл string-extension.ts не был там включен. Я очень знаком с концепцией в C #, но я не совсем знаком с ней в TypeScript, поэтому, если вам нужна дополнительная информация, я предоставлю.

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

сначала создайте global .d.ts. файл для настройки подписи.

global.d.ts.

export {}; // this file needs to be a module
declare global {
  interface String {
        isNullOrEmpty(this: string): boolean;
  }
}

строковый extension.ts:

export {}; // this file needs to be a module
String.prototype.isNullOrEmpty = function (this: string): boolean {
    return !this;
};

Теперь в main.ts импортируем расширение

 import './string-extension'  
...