export interface IProfile {
name: string;
age: number;
school: string;
hobby?: string;
}
1. Partial 타입
type aaa = Partial<Iprofile>
2. Required 타입
type bbb = Required<IProfile>;
3. Pick 타입
type ccc = Pick<IProfile, "name" | "age" | "hobby">;
4. Omit 타입
type ddd = Omit<IProfile, "school">;
5. Record 타입
type eee = "철수" | "영희" | "훈이"; // Union 타입
type fff = Record<eee, IProfile>;
6. 객체의 key들로 Union 타입 만들기
type ggg = keyof IProfile; // "name" | "age" | "school" | "hobby"
7. type vs interface
export interface IProfile {
candy: number; // 선언병합으로 추가됨
}
let profile: Partial<IProfile> = {
candy: 10,
};
기술부채로 남겨둔 것
https://cheeseb.github.io/typescript/typescript-record/
Record 타입과 Mapped Type에 대한 자세한 공부는 추후 게시글에 추가 예정
728x90
'Frontend 프론트엔드' 카테고리의 다른 글
[ 30 ] 이벤트 버블링 (0) | 2024.06.22 |
---|---|
[ 29 ] graphql codegen을 이용해서 Type 다운로드 받고 사용하기 (0) | 2024.06.22 |
[ 27 ] 게시판에 타입스크립트 컨테이너/프리젠터 적용 실습 (0) | 2024.06.22 |
[ 26 ] Next.js 에 타입스크립트 설정하기 (0) | 2024.06.21 |
[ 25 ] 게시판 수정하기 실습 2편 (0) | 2024.06.21 |