Keyof : 인터페이스의 키를 반환하여 준다. 

interface User{
   id: number
   name: string;
   age: number;
   gender: "m" | "f";
}

// interface 의 키 부분만 반환
type UserKey = keyof User; // id | name | age | gender

const uk:UserKey = "id"
const uk2:UserKey = "" // 에러

 

Partial<T> : 모든 프로퍼티를 선택사항으로 바꾸어준다.

interface User{
   id: number
   name: string;
   age: number;
   gender: "m" | "f";
}

let admin: Partial<User> = {
   id: 1,
   name: "Bob"
}

/*
위의 admin 은 아래와 같다.
interface User{
   id?: number
   name?: string;
   age?: number;
   gender?: "m" | "f";
}
*/

 

Required<T> : 모든 프로퍼티를 필수 사항으로 바꾸어준다.

ReadOnly<T> : 모든 프로퍼티를 읽기 전용으로 변경해 준다.

 

Record<K, T> : 모든 프로퍼티를 필수 사항으로 바꾸어준다.

const score: Record<"1" | "2" | "3" | "4", "A" | "B" | "C" | "D" | "F"> = {
   1: "A",
   2: "B",
   3: "C",
   4: "D",
}

type Grade = "1" | "2" | "3" | "4";
type Score = "A" | "B" | "C" | "D" | "F";

const score2: Record<Grade, Score> = {
   1: "A",
   2: "B",
   3: "C",
   4: "D",
}

 

interface User{
   id: number
   name: string;
   age: number;
}

function isValid(user:User){
   const result : Record<keyof User, boolean> ={
      id : user.id > 0,
      name : user.name !== "",
      age : user.age > 0 
   }
   return result;
}

 

 

Pick<T, K>: 인터페이스에서 원하는 프로퍼티를 선택

Omit<Type, K>

 

Exclude<T1, T2> T1에서 T2를 제외

 

NonNullable<Type>

type T1 = string | null | undefined | void;
type T2 = NoNullable<T1> // string | void

 

'프로그래밍 > TypeScript' 카테고리의 다른 글

[ TS ] 상속 : extends, super(),  (0) 2024.05.05
[ TS ] interface : 필터링하기  (0) 2024.04.01
[TS] 제네릭 ( Generics )  (0) 2024.03.08
[ TS ] 추상 class  (0) 2024.03.08
[TS] Class : Constructor(생성자) & Access Modifiers  (0) 2024.03.08

+ Recent posts