유틸리티 타입 (+MappedType)
1. Record모든 키를 지정된 타입으로 매핑 (맵드타입이다)그러므로 home이나 about둘중에 하나가 빠져도 안된다type Page = "home" | "about"; type PageInfo = { title: string }; const nav: Rec
K extends keyof T / keyof typeof 사용예제
프로젝트를 진행하면서 한 번 본 적이 있지만 귀찮아서 제대로 확인하지 않았던 부분을 조사했습니다. 초보적인 내용이 많아 조금 부끄럽지만, 다음에 볼 때 잊지 않기 위한 메모로 남겨둡니다! (아래 예시가 궁금하신 분은 읽어보셔도 좋습니다!)1 . K extends key
판별가능한 Union타입
하나의 타입을 사용하지만 이 타입이 어느 경우에는 A로 사용되고 어느 경우에는 B로 사용되는 경우가 있었다각 경우에 따라 타입을 만들게 되면 넘기게되는 파라미터가 많아지게 되기때문에 굉장히 불편하다그래서 마지막에 사용하는 컴포넌트에서 해당 타입을 union타입을 확인후
자바스크립트에서 객체는 값의 순서를 보장하는가?
(예제 소스코드의 출력결과)정답은 객체는 값의 순서를 보장하지 않는다 그렇기때문에 순서를 보장해야하는 경우 배열을 사용해야한다예를 들어서 아래의 예제에서 obj의 순서는 보장이 되지않는다<body> <button onclick="showObjectOrder()
npx란 무엇인가 (npm과 npx의 차이)
npx를 실행후 npm 패키지가 비어있는것이 확인가능하다tailwindcss의 설치중 아래와 같은 cmd가 있었고 npx는 무엇인가 궁금했기에 조사하였다npm install -D tailwindcss npx tailwindcss initnpx와 npm의 차이 요약한줄
Form태그
(예제1의 실행화면)개인적으로 서버에 데이터 전송시에 Form태그를 사용하지 않았다그러나 HTML에서 제공하는 강력한 기능들이 많이 준비되어 있어서 사용하는 편이 여러므로 좋다는걸 프로젝트를 진행하며 느꼈다1. Form태그HTML에서 form 태그는 사용자로부터 입력을
Reduce함수에 대해서
한마디로 정의하자면 reduce함수를 사용하면 map,filter등의 배열함수들을 동시에 사용하는 효과를 내며반환값을 자유롭게 설정하기때문에 유연하게 사용가능하다단순히 누적기능만 있는 배열함수라고 생각했지만 같은 팀동료가 사용하는것을 보고 놀랐다filter와 map기능
npm install과 npm ci 의 차이
지인과 개발을 하던 도중 프로젝트에서 알게 된 사실이다프로젝트 초기 설정시나 실서버에 배포할때 package.json 파일과 package-lock.json 파일이 존재할 경우npm install 명령어를 입력할때 package-lock.json 파일이 존재하므로 항상
Package.json과 Package-lock.json에 대해서
한마디로 정의하면 아래와 같다package.json은 설치할 패키지의 버전 범위이고package-lock.json은 실제 프로젝트에 설치한 패키지 버전이다package-lock.json의 사용이유버전 범위를 기록한 package.json만 존재한다면 해당 프로젝트를 사
any와 unknown의 차이 ( + never)
any보다는 unknown을 사용하는것이 좋다any모든 타입 허용컴파일러 경고 내지 않음// 아래의 any 예제는 컴파일러 경고를 표시하지않는다// 잠재적인 에러를 유발할수있다let value : any = 10; console.log(value.length); //
keyof / typeof 에대해서 ( + in , instanceof )
keyof/typeof참조Typeof아래와 같이 데이터를 타입으로 변환해주는 연산자일반 데이터 → 일반 타입으로 변환객체 데이터 → 객체의 타입으로 변환메서드 → 메서드의 타입으로 변환클래스 → 클래스의 타입으로 변환일반데이터를 일반타입으로 변환타입가드로 사용됨cons
npm의 패키지 버전관리에 대해서
버전 구성버전은 주로 Major(메이저 버전), Minor(마이너 버전), Patch(패치 버전)으로 구성되며, 세 가지 업데이트 유형을 나타냅니다.Major(메이저 버전): 호환성이 보장되지 않는 대규모 업데이트로, 이전 버전과의 호환성이 없을 때 주로 변경됩니다.