Closed Willaiem closed 1 year ago
Cześć Willaiem! Wielkie dzięki za to code review! Bardzo dużo cennych wskazówek. Nie wszystko udało mi się jeszcze poprawić, ale myślę, że jest już znacznie lepiej niż było. Faktycznie wkradło się sporo głupich błędów - zdecydowanie brak doświadczenia, pewnie troszkę gapiostwo.
Z Reactem to nie mój pierwszy projekt, ale co do Typescripta faktycznie masz racje. Momentami czuje się jeszcze zagubiony (na szczęście z każdą linijką kodu co raz mniej!) i pewnie jak wszyscy na początku drogi z nim - uważam, że na chwilę obecną troszkę bardziej przeszkadza niż pomaga. Oby jak najszybciej ten etap minął i obym mógł w pełni cieszyć się jego dobrodziejstwem :)
Ten projekt to moje pierwsze starcie z TS'em. Ciężko było/jest, ale mam wrażenie, że idzie to sukcesywnie do przodu. Nieocenione są tu podpowiedzi ESLinta i Quick Fix ;) Bardzo się cieszę, że jakiś czas temu to odkryłem, a jednocześnie bardzo żałuje, że nie wcześniej.
Aplikacja z założenia miała być prosta i bez fajerwerków - pierwsze skrzypce ma tu grać po prostu Typescript i jego nauka na własnym projekcie, a więc poprzeczka wyżej niż tutoriale z internetu :)
Cześć, widziałem twój post na grupie fb dla stażystów i juniorów i postanowiłem sprawdzić jakość twojego kodu.
Rady dot. całej aplikacji:
export default
, gdyż podczas importowania możesz dać dowolną nazwę, co w większości przypadków nie ma w ogóle sensu.any
, bo to podważa jakikolwiek sens korzystania z TypeScriptu - jak już musisz to korzystaj z typuunknown
,const Button = ({ id, title, setCardType }: ListButtonProps) => { // ... }
type ListButtonProps = { // ... }
const Button = ({ id, title, setCardType }: ListButtonProps) => { // ... }
type CardTypes = 'js' | 'css' | 'html' | 'react'
<>
Obiekty Promise zostały wprowadzone od ECMAScript 6 jako natywne wsparcie dla operacji asynchronicznych. Dzięki nim można niejako odłożyć wykonanie pewnej logiki na bok i zająć się głównym przepływem aplikacji. Przetwarzanie metody asynchronicznej może zakończyć się powodzeniem – wtedy wywołujemy metodę resolve() lub porażką – wtedy metodę reject();