A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Intersection types

8/28
Recursos

Mientras que el union type nos es 煤til para variables con m谩s de un tipo de dato, intersection types nos permite combinar varios tipos de dato utilizando el signo 鈥&鈥.

Aportes 18

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Hola a todos ! Dejo un comentario de manera global para que no haya confusiones, Typescript define en forma diferente lo que ser铆a una intersecci贸n o uni贸n de tipos en cuanto a lo que conocemos normalmente por la teor铆a de conjuntos, en Typescript una intersecci贸n habla sobre la combinaci贸n de los tipos por lo que el resultante tiene todas las propiedades de los mismos. Una uni贸n de tipos es un caso de uno u otro :).

Siento el poder de typescript en mis venas

Typescript es la morra a la que recurrimos cuando la relacion con Javascript se vuelve toxica y tiende al odio 馃ぃ馃ぃ

//Intersection聽types聽y聽su聽diferencia聽de聽Union聽types.
interface聽Interface1聽{
聽聽聽聽prop1:聽number;
}
interface聽Interface2聽{
聽聽聽聽prop2:聽number;
聽聽聽聽//聽prop3:聽number;聽Si聽se聽incluyera聽茅sta聽propiedad,聽nuevamente聽dar铆a聽error.
}
type聽InterfaceMix聽=聽Interface1聽&聽Interface2;
constinterfaceMix:聽InterfaceMix聽=聽{聽
聽聽聽聽prop1:聽2,
聽聽聽聽prop2:聽2,
聽聽聽聽//prop3:聽2,
}
//聽La聽principal聽diferente聽entre聽la聽union聽y聽la聽intersecci贸n聽es聽que聽la聽uni贸n聽es聽un聽valor聽"o"聽el聽otro,聽en聽cambio
//聽la聽intersecci贸n聽nos聽indica聽que聽un聽valor聽no聽puede聽estar聽indistinto聽del聽otro.
//聽Se聽puede聽utilizar聽en聽cualquier聽cantidad聽de聽interfaces,聽agregando聽si聽se聽desea聽una聽Interface3聽para聽ver聽que聽si
//聽procede聽el聽c贸digo.
//聽Lo聽importante聽es聽que聽TypeScript聽nos聽indica聽cuando聽se聽da聽茅ste聽tipo聽de聽error,聽y聽as铆聽poder聽corregirlo聽y聽llevar
//聽una聽mejor聽gesti贸n聽del聽c贸digo.

Si est谩n mal mis apuntes agradecer茅 las correcciones. 馃槈

es mi percepci贸n o esta mal definido, una uni贸n sera como un Y no 驴? ya que unes dos interfaces y una intersecci贸n ser铆a lo que tienen en com煤n o solo yo lo asocio a l贸gica de conjuntos jaja

La intersecci贸n es una mezcla de diferentes tipos de datos, las propiedades involucradas ser谩n requeridas en el momento de realizar la instancia

Tienes una actualizaci贸n pendiente en tu VS Code

interface Interface1 {
    prop1: number;
}

interface Interface2 {
    prop2: number;
    prop3: number;
}

interface Interface3 {
    prop2: number;
}

type InterfaceMix = Interface1 & Interface2 & Interface3;
const interfacemix: InterfaceMix = {
    prop1: 2,
    prop2: 3,
    prop3: 3
}
<interface Interface1{
    prop1: number;
}

interface Interface2{
    prop2: number;
    prop3: number;
}
//la interseccion puede llevar mas de 2 interfaces y no importa si la  propiedad se repite
interface Interface3{
    prop2: number;
}

//una interseccion la representamos con &
type InterfaceMix = Interface1 & Interface2 & Interface3;

const interfaceMix: InterfaceMix = {
    //los intersectionTypes necesitan tener las todas las propiedades de la interseccion
    prop1: 2,
    prop2: 2,
    prop3: 2,
}>

++++Un peque帽o resumen de las ultimas clases unidas en el siguiente c贸digo: ++++

interface Interface1 {
    prop1?: number; // propiedad opcional
    prop2: number;
}

interface Interface2 {
    prop3: number | string; // Union Types
}

type InterfaceMix = Interface1 & Interface2; // Intersection Types

const interfaceMix: InterfaceMix = {
    prop2: 2,
    prop3: "string"
}

<!-- Dale like si te ayudo  -->

Aqu铆 les dejo otro ejemplo interesante:
Consideren el mismo c贸digo que el de la clase, solo que ahora los tipos de datos en la propiedades son diferentes.

interface Interface1 {
    prop1: number;
}

interface Interface2 {
    prop2: string;
    prop3: boolean;
}

interface Interface3 {
    prop2: number;
}

type InterfaceX = Interface1 & Interface2 & Interface3;


const interfaceX: InterfaceX = {
    prop1: 3,
    prop2: 'hello', // Error: El tipo 'string' no se puede asignar al tipo 'string & number'.
    prop3: true
}

驴C贸mo arreglar铆as el c贸digo para evitar el error de prop2?

bueno de forma algebraica (por teor铆a de conjuntos) seria uni贸n , no intersecci贸n.

Interesante

las interfaces en typescript hacen tambien la misma funcion que un struct como go ?

Las interfaces vendrian a ser lo mismo que los strcuts en C++ como por ejemplo?

Mientras que el union type nos es 煤til para variables con m谩s de un tipo de dato, intersection types nos permite combinar varios tipos de dato utilizando el signo 鈥&鈥.

Union e interseccion en typesCRIPT funcionan tal cual las funciones OR y AND de logica computacional o compurtas logicas, pero aplicandolo a tipos de datos y sus propiedas en vez de condiciones de 1 y 0. https://es.wikipedia.org/wiki/Puerta_l贸gica

el Y l贸gico es una intersecci贸n que valida las propiedades y si son iguales las toma como una.