TypeScript: parametrizzato una funzione
I parametri sono un meccanismo per passare valori alle funzioni. I parametri fanno parte della firma della funzione. I valori dei parametri vengono passati alla funzione durante la sua chiamata. Se non diversamente specificato, il numero di valori passati a una funzione deve corrispondere al numero di parametri definiti.
Durante la chiamata a una funzione, ci sono due modi in cui gli argomenti possono essere passati a una funzione:
S.No. | Tipo di chiamata e descrizione |
---|---|
1. | Call by value Questo metodo copia il valore effettivo di un argomento nel parametro formale della funzione. In questo caso, le modifiche apportate al parametro all'interno della funzione non hanno effetto sull'argomento. |
2. | Call by pointer Questo metodo copia l'indirizzo di un argomento nel parametro formale. All'interno della funzione, l'indirizzo viene utilizzato per accedere all'argomento effettivo utilizzato nella chiamata. Ciò significa che le modifiche apportate al parametro |
Di seguito sono riportati i modi in cui i parametri possono essere utilizzati dalle funzioni:
Parametri posizionali
function func_name( param1 [:datatype], ( param2 [:datatype]) {
}
Esempio: parametri posizionali
function test_param(n1:number,s1:string) {
console.log(n1)
console.log(s1)
}
test_param(123,"this is a string")
Lo snippet dichiara una funzione test_ param con tre parametri, ovvero n1, s1 e p1.
Non è obbligatorio specificare il tipo di dati del parametro. In assenza di un tipo di dati, il parametro è considerato del tipo any . Nell'esempio sopra, il terzo parametro sarà del tipo any .
Il tipo di dati del valore passato deve corrispondere al tipo del parametro durante la sua dichiarazione. Nel caso in cui i tipi di dati non corrispondano, il compilatore genera un errore.
Durante la compilazione, genererà il seguente codice JavaScript.
//Generated by typescript 1.8.10
function test_param(n1, s1) {
console.log(n1);
console.log(s1);
}
test_param(123, "this is a string");
L'output del codice sopra è il seguente:
123
this is a string