Angular 7 Добавление метода расширения к примитивам

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

струнно-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 ответ

Решение

Во -первых, создать 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'  
Другие вопросы по тегам