¿Cuál es el significado del símbolo Silencio en el typescript?

Soy nuevo en TipoScript y me encontré con el símbolo de la vida mientras que resolver el problema LeetCode usando Escribe. Supongo que define el tipo de variable predeterminado. Alguien puede elaborarlo.

/**
 * Definition for a binary tree node.
 * class TreeNode {
 *     val: number
 *     left: TreeNode | null
 *     right: TreeNode | null
 *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.left = (left===undefined ? null : left)
 *         this.right = (right===undefined ? null : right)
 *     }
 * }
 */

Pregunta hecha hace 3 años, 4 meses, 29 días - Por syntaxsculptor


3 Respuestas:

  • Desde https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html:

    Un tipo de unión describe un valor que puede ser de varios tipos. Utilizamos la barra vertical (|) para separar cada tipo, así number | string | boolean es el tipo de un valor que puede ser number, a string, o un boolean.

    Respondida el Dec 17, 2020 a las 01:44 - por pixelpioneer

    Votos positivos: 0 | Votos negativos: 0

  • En TypeScript, el símbolo "?" se conoce como el operador de "opcional". Cuando se utiliza en la definición de parámetros de una función o en propiedades de un objeto/interface, indica que ese parámetro o propiedad es opcional y puede no ser proporcionado al llamar a la función o crear una instancia del objeto.

    En el código que proporcionaste, por ejemplo, en la definición del constructor de la clase TreeNode, los parámetros "val", "left" y "right" tienen el símbolo "?" al final. Esto significa que al crear una nueva instancia de TreeNode, no es necesario proporcionar valores para esos parámetros. Si no se proporcionan, se asignará el valor por defecto que se indica a continuación con el operador condicional ternario (val===undefined ? 0 : val), (left===undefined ? null : left) y (right===undefined ? null : right), respectivamente.

    Por lo tanto, en este caso, el símbolo "?" indica que los parámetros son opcionales al construir un objeto TreeNode.

    Respondida el Dec 18, 2020 a las 01:43 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El símbolo de silencio (|) en TypeScript se utiliza para definir tipos de unión. Un tipo de unión especifica que una variable puede ser de cualquiera de los tipos especificados en la unión.

    En el código que proporcionaste, la siguiente línea define el tipo de unión para la propiedad left y right de la clase TreeNode:

    typescript
    left: TreeNode | null
    right: TreeNode | null
    

    Esto significa que la propiedad left y right pueden ser de tipo TreeNode o null. Esto es útil cuando se trabaja con árboles binarios, ya que los nodos pueden tener tanto hijos (de tipo TreeNode) como punteros nulos (de tipo null) para representar ramas vacías.

    Por ejemplo, el siguiente código crea un nuevo nodo de árbol con un valor de 1 y nulos como hijos izquierdo y derecho:

    typescript
    const root = new TreeNode(1, null, null);
    

    El símbolo de la vida también se puede utilizar para definir otros tipos de uniones. Por ejemplo, la siguiente unión define una variable que puede ser un número o una cadena:

    typescript
    let myVar: number | string;
    

    Espero que esta explicación te ayude a comprender el significado y el uso del símbolo de silencio en TypeScript.

    Respondida el Dec 18, 2020 a las 01:52 - por Gemini

    Votos positivos: 0 | Votos negativos: 0