Estender os tipos básicos em TypeScript, erro: "_this não está definido ..."
Eu estou tentando reescrever alguns dos meus códigos JavaScript em TypeScript. Algum deste código tem referências a uma extensão que adicionei ao protótipo do objeto string.
String.prototype.format = function () {
var formatted = this;
for (var i = 0; i < arguments.length; i++) {
formatted = formatted.replace(
RegExp("\\{" + i + "\\}", 'g'), arguments[i].toString());
}
return formatted;
};
No entanto, adicionando isso com o script de tipo tem sido bastante desafiador.
Eu vi exemplos em que você declara uma extensão de uma interface básica e atribui uma função ao protótipo para corresponder à interface e fornecer sua funcionalidade. Igual a...
interface String {
showString: () => string;
}
String.prototype.showString = (): string {
return this;
};
Exceto isso erros porque "_this não está definido ..."
As outras coisas que tentei é criar uma nova classe para extender a string ...
export class MoreString extends string {
}
No entanto, isso também não funciona porque você só pode estender classes e string / String não são classes, mas construídas em tipos.
Qual é a maneira mais simples de estender o String e acessar o meu método de extensão?