Extienda los tipos básicos en TypeScript, error: "_este no está definido ..."

Estoy tratando de volver a escribir algo de mi código JavaScript en TypeScript. Parte de este código tiene referencias a una extensión que agregué al prototipo de objeto de cadena.

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

Sin embargo, agregar esto con el tipo de script ha sido bastante desafiante.

He visto ejemplos en los que declara una extensión de una interfaz básica y luego asigna una función al prototipo para que coincida con la interfaz y proporcione su funcionalidad. Al igual que...

interface String {
    showString: () => string;
}

String.prototype.showString = (): string {
    return this;
};

Excepto estos errores porque "_este no está definido ..."

Las otras cosas que he intentado es crear una nueva clase para extender la cadena ...

export class MoreString extends string {

}

Sin embargo, esto tampoco funciona porque solo puede extender las clases y la cadena / Cadena no son clases sino tipos integrados.

¿Cuál es la forma más sencilla de extender String y acceder a mi método de extensión?

Respuestas a la pregunta(4)

Su respuesta a la pregunta