NEgli script precedenti ci siamo occupati di come estendere il prototype della classe JavaScript Array aggiungendo nuovi metodi e di come rendere questi nuovi metodi visibili anche al codice TypeScript. In questo script vedremo come fare la stessa cosa per la classe String aggiungendo un metodo Format simile a quello che già conosciamo in .NET.
Come sempre, per prima cosa dobbiamo estendere la classe String e aggiungere il metodo format così da renderlo visibile a TypeScript. Successivamente, possiamo estendere il prototype di String.
declare global { interface string { format(): string; } } String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); }
Il metodo prende la lista dei parametri in input, e usa una regex per rimpiazzare i caratteri {0}, {1}, {2} (e così via) con i parametri di input in base alla loro posizione.
Quando la stringa è conosciuta già a desing time, al posto del format possiamo usare l'interpolazione di stringhe introdotta con ES6, ma quando la stringa è costruita a run time, avere un metodo format a disposizione è sicuramente utile.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare la session affinity con Azure Container Apps
Utilizzare i primary constructor di C# per inizializzare le proprietà
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Miglioramenti nell'accessibilità con Angular CDK
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Sostituire la GitHub Action di login su private registry
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Utilizzare Azure AI Studio per testare i modelli AI
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Eseguire i worklow di GitHub su runner potenziati