Date을 쓸수 있지만json은 Date object를 지원하지 않기 때문에 string 이다.하지만 data를 받아서 store state에 저장할 때 new Date()를 이용해서 저장 할 수 있다.https://stackoverflow.com/questi
unknown : 컴파일 에러 발생함 - 타입을 좁혀서 사용을 권장함any : 컴파일 에러 발생 안함 - 어느 타입이든 다 허용함둘다 가급적 사용하지 않는 것이 좋음
yield 마다 return type이 달라지면 any를 사용하는게 편한 것 같다.
type을 서로 엮어서 만들 수 있다.Record<Keys, Type>Keys가 Record로 반환되는 타입의 키가 되고Type은 각 Keys의 타입
단일 책임 원칙모듈, 클래스, 함수는 하나의 파트에서만 책임을 가져야 한다는 원칙개방 폐쇄 원칙소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다리스코프 치환 원칙프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어
Union type에서 특정 항목을 제거하고 싶었다.Omit으로 제거할 수 없어서 찾아보니 Exclude를 사용해서 제거할 수 있었다.참고https://www.reddit.com/r/typescript/comments/o849ez/how_to_use_omit_
javascript의 함수 선언문 방식엔 arguments라는 프로퍼티가 존재한다.함수로 전달되는 모든 매개변수(argument)를 arguments라는 배열 비슷한 이 프로퍼티를 통해 불러올 수도 있다.하지만 이는 어떤 타입이 들어올지 몰라서 전혀 안전하지 않다.실제
예를 상대경로로 ../../hooks 와 같이 import 해오는 것을 절대 경로로 @hooks 처럼 깔끔하게 import할 수 있는 설정이다tsconfig.json에서 compilerOptions의 baseUrl을 설정해야 alias paths를 설정할 수 있
tsc --projectCompile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.타입스크립트 파일을 자바스크립트로 변환(컴파일)e.g., Ts.ED
유니온 타입으로 묶은 타입들의 이름만 추출한 타입을 만들고 싶을 때
typescript enum은 class 처럼 타입이자 동시에 값일 수도 있다typescript enum의 값은 아무거나 넣을 수 있는데 만약 아무것도 넣지 않는 다면 다른 언어의 일반적인 enum처럼 0, 1, 2, ... 순서대로 숫자가 들어간다헤드 퍼스트 디자인
keyof operator : keyof + 타입에서 타입의 키를 Union 타입으로 변환한 타입https://www.typescriptlang.org/docs/handbook/2/keyof-types.htmle.g.
tsc 를 빌드 스크립트에서 실행하게 되면tsconfig.json에 있는 설정대로 타입스크립트를 컴파일해서 자바스크립트로 변환한다
어떤 타입에서 특정 필드만 옵셔널로 만들고 싶을 때 사용할만한 좋은 유틸타입 조합
https://stackoverflow.com/questions/64527150/in-typescript-how-to-select-a-type-from-a-union-using-a-literal-type-property
함수의 리턴 타입은 타입스크립트 유틸 타입인 ReturnType를 이용해서 함수의 리턴타입을 정의할 수 있다hooks를 props로 내려 받고 싶을 때 아래와 같이 사용할 수 있다
타입스크립트 유틸타입 중 하나인 Awaited는 Promise를 제거한 타입을 사용할 수 있다
window를 통해 사용하는 라이브러리에 타입지원하기
조건부 타입(Conditional Type)입력된 제네릭 파입에 따라 타입을 결정(T extends U ? X : Y)
satisfies 는 as와 같이 타입 캐스팅하는 용도로 사용할 수 있습니다as는 강제로 해당 타입으로 만들어주지만 satifies는 실제로 타입이 맞는지 확인을 합니다. satisfies는 타입스크립트 4.9버전에 업데이트되었습니다
axios를 사용할 때 데이터를 요청하는 경우에는 axios.get<T> 와 같이 제네릭을 이용해서 응답데이터를 지정할 수 있다그런데 에러데이터는 try catch에서 처리할 때 catch의 error는 unknown, react-query를 이용하는 경우 any
라이브러리를 사용하다보면 제공하는 메서드의 대부분의 타입을 import 해서 사용할 수 있지만 그렇지 않은 경우도 있습니다함수로 부터 입력 파라미터 타입을 추출할 수 있는 유틸타입(Parameters)을 사용하면 쉽게 타입을 정의해서 사용할 수 있습니다Parameter