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 |