Ahora combinemos estos dos, los tipos de mapa y los tipos condicionales, y creemos un tipo de utilidad personalizado. Así que el tipo de utilidad que quieres crear es similar a omitir, pero un poco diferente. Entonces omitir toma la clave de, esto es lo que hace omit. Tipo omitir claves, omitir persona, coma, así que tomará todas las claves de persona, digamos h, y omitirá todas estas cosas y solo devolverá lo que quede, las claves que queden. Ahora lo que quieres es, en lugar de dar la persona, en lugar de dar las claves como segundo argumento, queremos dar los tipos que queremos eliminar. No queremos dar el nombre exacto de la clave, sino el tipo de la clave que queremos eliminar. Así que queremos eliminar aquí, booleanos y números, no queremos esto, y no queremos esto, solo queremos nombre y correo electrónico. Así que una vez que lo demos, debería devolver solo las variables de tipo cadena. ¿Cómo lo hacemos? Solo claves de cadena, ¿cómo lo hacemos? Así que usamos la misma firma que tenemos para omitir, así que omitir toma el objeto principal como base, y también tomamos todos los tipos de unión. Y usamos el mismo omitir pero con un tipo diferente, así que básicamente omitir espera las claves como segundo argumento, ¿verdad?, eso es lo que espera, claves como segundo argumento. Pero estamos enviando número, y estamos enviando ese tipo real como segundo argumento. Así que queremos convertir esto a número, queremos convertir el tipo a las claves reales. Eso es lo que se está haciendo aquí. Así que estamos usando el tipo de mapa para recorrer el objeto base y obtener todas las claves, y lo que estoy comprobando es el tipo. Así que este objeto principal de clave devolverá nombre o número según sea la clave, si es nombre, entonces es cadena. Así que será cadena se extiende del tipo a eliminar es número o booleano, digamos que cadena se extiende booleano, no es correcto, así que no se extiende booleano. Entonces devolvemos la propia clave, así que devolvemos nombre. Así que para nombre, es una cadena, si se extiende, lo devolvemos, así que en este ejemplo, digamos que esto es una cadena se extiende booleano, no se extiende booleano, así que será never, así es como se hace aquí, y luego está edad. Así que edad, el tipo de edad es número, así que esto es número se extiende número o booleano, sí se extiende, entonces devolverá el número, la propia clave, así que será edad. Así que estoy devolviendo la clave, no estoy devolviendo el tipo, estoy devolviendo directamente la clave. Nuevamente, correo electrónico, el tipo de correo electrónico es cadena, será never, luego está estudiante, así que este, el tipo de estudiante es parte de booleano o número, sí, entonces devolverá el tipo, básicamente es estudiante, devolverá la clave, básicamente es estudiante, así es como se devuelve después de que se ejecute esto. Nuevamente, ahora no queremos este objeto. Lo que queremos es que nombre y edad pasen, ¿verdad? ¿Cómo lo pasamos? Con esto, así que si recuerdas este ejemplo que vimos, esta persona puede tomar, este tipo, puede tomar las claves de persona, básicamente la unión de todas las claves, ¿verdad? Devolverá todos los tipos de esas. Así que si paso, digamos que esto es booleano, ¿verdad? También devolverá nombre, número y booleano. ¿Cuáles son todos los tipos de estas claves que se escribirán? Así que en nuestro ejemplo, es un poco diferente. Devolverá lo mismo, pero ¿qué tipo tenemos? Tenemos todos los tipos literales, tenemos never, tenemos edad como tipo literal, y never de nuevo. Y nuevamente, estudiante es un tipo literal. Así es como se escribe. Así que esta clave de esto es así, y devolverá todos los tipos reales que se hayan dado.
Comments