Quando vogliamo aggiungere un metodo a una classe esistente dobbbiamo usare una funzionalità di TypeScript nota come module augmentation. Vediamo prima il codice e poi lo analizziamo.
declare global { interface String { formatByPosition(...values: any[]): string; } } String.prototype.formatByPosition = function (...values: any[]) { return this.replace(/{(\d+)}/g, function (match, number) { return (values[number]) || match; }); };
Nella prima parte del codice dichiariamo nel namespace globale l'interfaccia String alla quale aggungiamo un metodo formatByPosition. Dopo aver aggiunto il metodo all'interfaccia String, dobbiamo aggiungere la sua implementazione al prototype della classe String.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creazione di componenti personalizzati in React.js con Tailwind CSS
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Creare gruppi di client per Event Grid MQTT
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Code scanning e advanced security con Azure DevOps
Configurare policy CORS in Azure Container Apps
Paginare i risultati con QuickGrid in Blazor
Eseguire attività pianificate con Azure Container Jobs
Copiare automaticamente le secret tra più repository di GitHub
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Gestire domini wildcard in Azure Container Apps