Как добавить в прототип типы из других модулей в TypeScript? - PullRequest
0 голосов
/ 07 февраля 2020

Допустим, я хотел бы добавить этот метод в String:

String.prototype.frenchQuote = function() {
  return '« ' + this + ' »';
}

TypeScript будет жаловаться на то, что в String нет метода frenchQuote.

Online, можно найти много предложений, чтобы затем объявить это так:

interface String {
  frenchQuote(): string
}

Однако TypeScript помечает этот interface как неиспользуемый и все еще жалуется на несуществующий метод.

Есть ли новый способ дополнить подпись импортированных типов или встроенных модулей?

Использование версии TypeScript 3.7

1 Ответ

0 голосов
/ 07 февраля 2020

Спасибо @pushkin за подсказку. Решением было сообщить TS, что interface является глобальным:

declare global {
  interface String {
    frenchQuote(): string
  }
}
...