Funciones de TypeScript
Una función es un conjunto de declaraciones que juntas realizan una tarea.
Puede dividir su código en diferentes funciones. Cómo dividir el código en diferentes funciones depende de usted, pero lógicamente, la división generalmente se realiza según que cada función ejecute una tarea específica.
La declaración de una función le dice al compilador el nombre, el tipo de retorno y los parámetros de la función. La definición de la función proporciona el cuerpo real de la función.
Definición de funciones
Una función es un bloque de código encerrado entre llaves, precedido por la palabra clave function:
El formato de sintaxis es el siguiente:
function function_name()
{
// 执行代码
}
Ejemplo
TypeScript
Llamar a una función
Una función solo puede ejecutar el código que contiene cuando es llamada.
El formato de sintaxis es el siguiente:
function_name()
Ejemplo
TypeScript
Valor de retorno de una función
A veces, queremos que la función devuelva el resultado de la ejecución al lugar donde se la llama.
Esto se puede lograr mediante el uso de la declaración return.
Al usar la declaración return, la función deja de ejecutarse y devuelve el valor especificado.
El formato de sintaxis es el siguiente:
function function_name():return_type {
// 语句
return value;
}
return_type es el tipo del valor de retorno.
La palabra clave return va seguida del resultado a devolver.
En general, una función solo tiene una declaración return.
El tipo del valor de retorno debe coincidir con el tipo de retorno (return_type) definido en la función.
Ejemplo
TypeScript
En el ejemplo se define una funcióngreet(), el tipo del valor de retorno es string.
greet()La función devuelve mediante la declaración return al lugar donde se la llama, es decir, a la variable msg, y luego se muestra ese valor de retorno.
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
Funciones con parámetros
Al llamar a una función, puede pasarle valores, estos valores se denominan parámetros.
Estos parámetros se pueden usar dentro de la función.
Puede enviar varios parámetros a la función, cada parámetro separado por coma,:
El formato de sintaxis es el siguiente:
function func_name( param1 [:datatype], param2 [:datatype]) {
}
param1, param2 son los nombres de los parámetros.
datatype es el tipo del parámetro.
Ejemplo
TypeScript
En el ejemplo se define una funciónadd(), el tipo del valor de retorno es number.
add()En la función se definen dos parámetros de tipo number, y dentro de la función se suman los dos parámetros y se devuelve el resultado.
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
3
Parámetros opcionales y parámetros por defecto
Parámetros opcionales
En las funciones de TypeScript, si definimos parámetros, debemos pasarlos a menos que estos parámetros se establezcan como opcionales. Los parámetros opcionales se identifican con un signo de interrogación ?.
Ejemplo
TypeScript
En el siguiente ejemplo, configuramos lastName como un parámetro opcional:
TypeScript
Los parámetros opcionales deben ir después de los parámetros requeridos. Si en el ejemplo anterior queremos que firstName sea opcional y lastName sea obligatorio, entonces debemos ajustar sus posiciones y poner firstName al final.
Si todos son parámetros opcionales, no hay problema.
Parámetros por defecto
También podemos establecer valores por defecto para los parámetros, de modo que al llamar a la función, si no se pasa el valor de ese parámetro, se usa el parámetro por defecto. El formato de sintaxis es:
function function_name(param1[:type],param2[:type] = default_value) {
}
Nota: Un parámetro no se puede establecer como opcional y por defecto al mismo tiempo.
Ejemplo
En el siguiente ejemplo, el parámetro rate de la función tiene un valor por defecto de 0.50. Al llamar a esta función, si no se pasa el parámetro, se usa ese valor por defecto:
TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
计算结果: 500 计算结果: 300
Parámetros rest
Hay un caso en el que no sabemos cuántos parámetros se pasarán a la función; en ese momento podemos usar los parámetros rest para definirlos.
La sintaxis de los parámetros rest nos permite pasar un número indeterminado de parámetros como un array.
TypeScript
El último parámetro nombrado de la función, restOfName, tiene el prefijo ..., y se convierte en un array compuesto por los parámetros restantes, con índices desde 0 (incluido) hasta restOfName.length (excluido).
TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
和为: 6 和为: 50
Funciones anónimas
Una función anónima es una función sin nombre de función.
Las funciones anónimas se declaran dinámicamente durante la ejecución del programa; salvo que no tienen nombre de función, todo lo demás es igual que en las funciones estándar.
Podemos asignar una función anónima a una variable, y esta expresión se convierte en una expresión de función.
El formato de sintaxis es el siguiente:
var res = function( [arguments] ) { ... }
Ejemplo
Función anónima sin parámetros:
TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
hello world
Función anónima con parámetros:
TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
24
Autoinvocación de funciones anónimas
Para la autoinvocación de una función anónima, basta con usar () después de la función:TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
Hello!!
Funciones constructoras
TypeScript también admite el uso del constructor incorporado de JavaScript Function() para definir funciones:
El formato de sintaxis es el siguiente:
var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)
Descripción de parámetros:
- arg1, arg2, ... argN: Lista de parámetros.
- functionBody: Una cadena que contiene declaraciones de JavaScript, incluida la definición de la función.
Ejemplo
TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
12
Funciones recursivas
Una función recursiva es aquella que se llama a sí misma dentro de la función.Por ejemplo:
Había una vez una montaña, en la montaña había un templo, en el templo había un monje anciano que estaba contando una historia a un monje joven. ¿Cuál era la historia? "Había una vez una montaña, en la montaña había un templo, en el templo había un monje anciano que estaba contando una historia a un monje joven. ¿Cuál era la historia? 'Había una vez una montaña, en la montaña había un templo, en el templo había un monje anciano que estaba contando una historia a un monje joven. ¿Cuál era la historia? ...'"
Ejemplo
TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
720
Funciones Lambda
Las funciones Lambda también se denominan funciones de flecha.
La sintaxis de la expresión de función de flecha es más corta que la de la expresión de función normal.
La función tiene solo una declaración:
( [param1, param2,…param n] )=>statement;
Ejemplo
El siguiente ejemplo declara una función de expresión lambda que devuelve la suma de dos números:TypeScript
Compile el código anterior para obtener el siguiente código JavaScript:
JavaScript
El resultado de salida es:
110
La función es un bloque de declaraciones:
( [param1, param2,…param n] )=> {
// 代码块
}
Ejemplo
El siguiente ejemplo declara una función de expresión lambda que devuelve la suma de dos números:
TypeScript
Al compilar el código anterior, se obtiene el siguiente código JavaScript:
JavaScript
El resultado de salida es:
110Podemos no especificar los tipos de parámetros de la función, y estos se infieren dentro de la función:
TypeScript
Al compilar el código anterior, se obtiene el siguiente código JavaScript:
JavaScript
El resultado de salida es:
12 是一个数字 Tom 是一个字符串
Parámetro único()es opcional:
TypeScript
Al compilar el código anterior, se obtiene el siguiente código JavaScript:
JavaScript
El resultado de salida es:
输出为 12
Cuando no hay parámetros, se pueden usar paréntesis vacíos:
TypeScript
Al compilar el código anterior, se obtiene el siguiente código JavaScript:
JavaScript
El resultado de salida es:
Llamar a la función
Sobrecarga de funciones
La sobrecarga consiste en que los métodos tienen el mismo nombre, pero parámetros diferentes; el tipo de retorno puede ser igual o diferente.
Cada método sobrecargado (o constructor) debe tener una lista única de tipos de parámetros.
Tipos de parámetros diferentes:
function disp(string):void; function disp(number):void;
Número de parámetros diferente:
function disp(n1:number):void; function disp(x:number,y:number):void;
Orden de los tipos de parámetros diferente:
function disp(n1:number,s1:string):void; function disp(s:string,n:number):void;
Si los tipos de parámetros son diferentes, el tipo de parámetro debe establecerse comoany。
Si el número de parámetros es diferente, puedes establecer los diferentes parámetros como opcionales.
Ejemplo
El siguiente ejemplo define tipos de parámetros y números de parámetros diferentes:
TypeScript
Al compilar el código anterior, se obtiene el siguiente código JavaScript:
JavaScript
El resultado de salida es:
abc undefined 1 xyzOtras extensiones