Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida Typescript - Overloading sui parametri stringa

Guida Typescript

Capitolo 9° - Overloading sui parametri stringa

<< Precedente Prossimo >>

Un importante obiettivo di Typescript è quello di fornire dei tipi accurati per dei patterns comuni in Javascript. Per questo motivo Typescript ha dei tipi generici, che verranno discussi nel prossimo capitolo, assieme all'overloading dei parametri stringa.

Le interfacce in Javascript spesso includono funzioni il cui comportamento è determinato da una costante stringa passata come argomento alle stesse. Il DOM fa ampio utilizzo di questo pattern. Ad esempio, la funzione createElement:

document.createElement("span")
document.createElement("div")
document.createElement("a")

Restituisce diversi tipi di oggetto in base al parametro che le viene passato. Il che implica che createElement ritorna diversi tipi, in base al primo parametro stringa.

Typescript è in grado di dedurre la firma di una funzione in base al tipo di stringa passato come argomento. Nel caso di document.createElement("span") ad esempio, 'span' viene utilizzato per dedurre che il tipo di ritorno è un 'HTMLSpanElement' e che quindi la proprietà 'isMultiline' è disponibile.

var span = document.createElement("span"); 
span.isMultiLine = false; // OK: HTMLSpanElement ha la proprietà 'isMultiline'

Nel seguente screenshot uno strumento combina l'informazione data dall'overloading di un parametro stringa per dedurre che la variabile 'e' è di tipo 'MouseEvent' e che quindi 'e' ha una proprietà 'clientX'.

65

<< Precedente Prossimo >>
A proposito dell'autore

E' un appassionato di programmazione con un particolare interesse per le tecnologie web e mobile. Da 11 anni gestisce il sito pierotofy.it e lavora negli Stati Uniti come consulente informatico tramite la sua azienda, MasseranoLabs LLC. Seguilo su Twitter: @pierotofy