Extension methods é uma funcionalidade bem legal mesmo. Apesar de eu não usar C#, já tirei proveito disso em Kotlin.
Em TypeScript, para adicionar propriedades ao prototype de algum objeto global sem abrir mão da tipagem, vc pode usar uma interface. Por exemplo:
interface String {
log(): void;
}
String.prototype.log = function () {
console.log(this);
};
const text = "JavaScript Extension methods";
text.log();
O ideal é mover a declaração da interface para um arquivo *.d.ts
para que a definição esteja disponível em qualquer módulo.
Puts!! Genial, eu não sabia massa que a cada dia o camarada aprende uma coisa nova!
Mas Kotlin tem como fazer também? Não sabia! Outra coisa, java tem como fazer algo similar, já procurei a um tempo atrás quando precisei uma época atrás.
Muito obrigado pela dica mestre!