Skip to content

Commit 041b1d0

Browse files
committed
update ts notes
1 parent 79f6c37 commit 041b1d0

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

02-languages/02-apuntes/02-typescript/106 advanced types.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,29 @@ type Whatever<T> = {
1818
value: T;
1919
};
2020

21+
// *** IMPORTANTE - INCISO: Los type alias también se pueden usar para declarar la forma de un
22+
// objeto, del mismo modo que hacen los interfaces. Tenemos por tanto 2 maneras de especificar la
23+
// firma de un objeto a nivel de tipos: interfaces y type alias. Y ambas formas permiten la
24+
// extensión, lo interfaces a través de 'extends' y los type alias mediante intersección de tipos
25+
// '&'. Entonces, ¿cual es la diferencia? Mientras que los interfaces son 'abiertos' y permiten
26+
// continuar extendiéndolos con múltiples declaraciones, los type alias son cerrados y solo podemos
27+
// definirlos 1 vez:
28+
29+
interface PersonInterface {
30+
name: string;
31+
}
32+
interface PersonInterface {
33+
age: number;
34+
}
35+
const me: PersonInterface = { name: "John", age: 30 };
36+
37+
type PersonType = { name: string }; // [ts] Duplicate identifier
38+
type PersonType = { age: number }; // [ts] Duplicate identifier
39+
40+
// Por lo general se suele recomendar el uso de interfaces para tipar objetos debido a esta
41+
// capacidad extra.
42+
// https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces
43+
2144
// -- Caso Práctico --
2245

2346
// Alias es muy util para abstraernos de definiciones complejas. No crea nuevos tipos, solo nuevos

0 commit comments

Comments
 (0)