Fajny materiał, ale nie do końca zgodzę się z tym o czym mówisz w minucie 4:00 o enumach stringowych. Dla mnie to "dziwactwo" to zaleta enumów, nie po to definiuje enum, żeby zamiast niego posługiwać się zwykłymi stringami, których wartość akurat odpowiada wartości z enuma. Odpowiada akurat w tym momencie, nie musi już np. po refaktorze i zmianie wartości enuma.
Dobra uwaga. Tutaj raczej chodzi o fakt, że mamy niespójności w implementacji i developer musi pamiętać o tym który typ enumów jest typowany strukturalnie, a który nominalnie
Nominalność enumów to ich zaleta a nie wada. Typowanie strukturalne które jest podstawą TS jest w sumie jego największą wadą w kontekście bezpieczeństwa typów.
Enumy są transpilowane do Symbol w JSie, gdzie specjalnie było tak zaprojektowane by porównywać te wartości poprzez komórkę/alokacji pointera w pamięci niż po wartości. Działa jak powinno być.
Nie do końca tak jest. Enumy są transpilowane do IIFE (Immediately Invoked Function Expression). Symbole to trochę inna historia, może kiedyś nagramy o nich dedykowany odcinek
Zbiegiem okoliczności! widziałem dokładnie to samo na profilu Roberto Heckers na linkedin jakiś tydzień temu
Fajny materiał, ale nie do końca zgodzę się z tym o czym mówisz w minucie 4:00 o enumach stringowych. Dla mnie to "dziwactwo" to zaleta enumów, nie po to definiuje enum, żeby zamiast niego posługiwać się zwykłymi stringami, których wartość akurat odpowiada wartości z enuma. Odpowiada akurat w tym momencie, nie musi już np. po refaktorze i zmianie wartości enuma.
Dobra uwaga. Tutaj raczej chodzi o fakt, że mamy niespójności w implementacji i developer musi pamiętać o tym który typ enumów jest typowany strukturalnie, a który nominalnie
👉 Odbierz bezpłatne podsumowanie odcinka w PDF: newsletter.instytutfullstack.pl/?pdfName=enums
👉 Subskrybuj nasz kanał: ruclips.net/channel/UCAKnz4Q2OayB54IBJrWBvAA
Nominalność enumów to ich zaleta a nie wada. Typowanie strukturalne które jest podstawą TS jest w sumie jego największą wadą w kontekście bezpieczeństwa typów.
Super wideo, dzięki. Pytanie - czego używasz do podglądu kodu? Wygląda jak xcode playgrounds. To jakaś dedykowana apka?
Korzystam z RunJS. Bardzo wygodne narzędzie do eksperymentów
@instytut_fullstack właśnie zauważyłem :) Używam do tego pluginu vscode - code runner, ale RunJS wygląda dużo lepiej . Wielkie dzięki!
@instytut_fullstack właśnie zauważyłem :) Ja używam do tego typu rzeczy pluginu vscode - code runner, ale RunJS wygląda dużo lepiej. Wielkie dzięki!
@instytut_fullstack właśnie zauważyłem :) Ja używam do tego typu rzeczy pluginu vscode - code runner, ale RunJS wygląda dużo lepiej. Wielkie dzięki!
@instytut_fullstack właśnie zauważyłem :) Ja używam do tego typu rzeczy pluginu vscode - code runner, ale RunJS wygląda dużo lepiej. Wielkie dzięki!
Enumy były spoko swego czasu jak niektóre validatory nie ogarniały dobrze unii typów w TS.
Enumy są transpilowane do Symbol w JSie, gdzie specjalnie było tak zaprojektowane by porównywać te wartości poprzez komórkę/alokacji pointera w pamięci niż po wartości. Działa jak powinno być.
Nie do końca tak jest. Enumy są transpilowane do IIFE (Immediately Invoked Function Expression). Symbole to trochę inna historia, może kiedyś nagramy o nich dedykowany odcinek
Najlepszą alternatywą dla enumów są unie, choć nie zawsze mogą je zastąpić.