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
Arricchire l'interfaccia di .NET Aspire
Azure SQL Database per dev: tutte le novità da non perdere
Effettuare un clone parziale di un repository di GitHub
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Abilitare il rolling update su Azure Functions flex consumption
Configuratione e utilizzo .NET Aspire CLI
Utilizzare AbortController per cancellare operazioni asincrone in JavaScript
Blue/Green Release in locale con .NET Aspire
Referenziare un package NuGet in una file based app .NET
Evidenziare una porzione di testo in un pagina dopo una navigazione
Integrazione di Copilot in .NET Aspire


