사용하지 않는 유틸리티 유형 정리
38547 단어 TypeScripttech
이번에는 평소에 사용하지 않는 실용 프로그램형을 정리하고 싶습니다.같은 실용 프로그램형을 계속 사용했지만 찾아보니 많은 것들이 있었다.
실용 신형은?
유형은 Type Script를 사용하여 간단하게 변환할 수 있는 유형입니다.유틸리티형은 저번 보도에 설명된 Generics형을 사용했다.틀을 적절하게 바꾸는 편리한 도구라는 인상을 준다!
2 유틸리티
공식 문서에 기재된 유틸리티 유형을 정리합니다.
2-1 Partial<Type>
Partial<Type>
활성화type
의 모든 속성.type CustomerData = {
name: string;
age?: number;
gender?: string;
department?: string;
isRetired: boolean;
};
type PartialCustomerData = Partial<CustomerData>;
이것PartialCustomerData
은👇같다type PartialCustomerData = {
name?: string;
age?: number;
gender?: string;
department?: string;
isRetired?: boolean;
};
2-2 Required<Type>
Required<Type>
는 type
의 모든 속성을 갖추어야 한다.type CustomerData = {
name: string;
age?: number;
gender?: string;
department?: string;
isRetired: boolean;
};
type RequiredCustomerData = Required<CustomerData>;
이것RequiresCustomerData
은👇같다type RequiredCustomerData = {
name: string;
age: number;
gender: string;
department: string;
isRetired: boolean;
};
2-3 Readonly<Type>
Readonly<Type>
type
의 모든 속성을 읽기 전용으로 설정합니다.업데이트가 안되네요.type CustomerData = {
name: string;
age?: number;
gender?: string;
department?: string;
isRetired: boolean;
};
type ReadonlyCustomerData = Readonly<CustomerData>;
👇속성을 업데이트할 수 없습니다.const customerData: ReadonlyCustomerData = {
name: "shinji",
age: 28,
gender: "male",
department: " accounting",
isRetired: false,
};
//読み取り専用プロパティであるため、'name' に代入することはできません。
customerData.name = "asuka";
2-4 Record<Keys, Type>
Reacord<keys,Type>
반환 속성 키는 keys
이고 그 유형은 Type
의 대상 유형이다.type CustomerLists = Record<"shinji" | "asuka", CustomerData>;
const customerlists: CustomerLists = {
shinji: {
name: "shinji",
age: 28,
gender: "male",
department: "accounting",
isRetired: false,
},
asuka: {
name: "asuka",
age: 28,
gender: "female",
department: "sales",
isRetired: false,
},
CustomerLists
의 유형은👇이렇게type CustomerLists = {
shinji: CustomerData;
asuka: CustomerData;
}
2-5 Pick<Type, Keys>
Pick<Type,Keys>
유형Type
에서 Keys
에 지정된 키를 포함하는 대상 유형을 되돌려줍니다.type CustomerData = {
name: string;
age?: number;
gender?: string;
department?: string;
isRetired: boolean;
};
type CustomerNameLists = Pick<CustomerData,"name">
CustomerNameLists
의 유형은👇이렇게type CustomerNameLists = {
name: string;
}
2-6 Omit<Type, Keys>
Omit<Type,Keys>
는 유형Type
에서 Keys
에 지정된 키 이외의 대상 유형을 되돌려줍니다.type CustomerData = {
name: string;
age?: number;
gender?: string;
department?: string;
isRetired: boolean;
};
type CustomerNameLists = Omit<
CustomerData,
"age" | "gender" | "department" | "isRetired"
>;
CustomerNameLists
의 유형은👇이렇게type CustomerNameLists = {
name: string;
}
2-7 Exclude<UnionType, ExcludedMembers>
Exclude<UnionType, ExcludedMembers>
는 UNION형UnionType
에서 지정한 유형을 제외한 UNION형을 되돌려줍니다.type JobGrade = "S" | "A" | "B" | "C" | "D";
type SuperJobGrade = Exclude<JobGrade, "B" | "C" | "D">;
ExcludedMembers
의 유형은👇이렇게type SuperJobGrade = "S" | "A"
2-8 Extract<Type, Union>
SuperJobGrade
UNION형Extract<Type, Union>
에서 추출Type
지정된 유형의 UNION형을 반환합니다.type JobGrade = "S" | "A" | "B" | "C" | "D";
type SuperJobGrade = Extract<JobGrade, "S" | "A">;
Union
의 유형은👇이렇게type SuperJobGrade = "S" | "A"
SuperJobGrade
는 두 연합형의 공통 부분을 추출하는 데 쓰인다.2-9 NonNullable<Type>
Extract<Type, Union>
NonNullable<Type>
에서 Type
와null
로 되돌아오는 유형.type T1 = string | boolean | null | undefined;
type NonNullableT1 = NonNullable<T1>;
undefiend
의 유형은👇이렇게type NonNullableT1 = string | boolean
2-10 Parameters<Type>
NonNullableT1
는 함수 형식Parameters<Type>
의 매개 변수를 원조 형식으로 추출한 형식으로 되돌려줍니다.type T1 = Parameters<
(arg1: string, arg2: boolean, arg3?: number) => void
>;
Type
예👇같다type T1 = [arg1: string, arg2: boolean, arg3?: number | undefined]
2-11 ConstructorParameters<Type>
T1
구조기 함수형ConstructorParameters<Type>
의 매개 변수를 원조형으로 추출한 형식으로 되돌려줍니다.class Customer {
name: string;
age: number;
isRetired: boolean;
constructor(name: string, age: number, isRetired: boolean) {
this.name = name;
this.age = age;
this.isRetired = isRetired;
}
}
type ConstructorParametersCustomer = ConstructorParameters<typeof Customer>;
Type
예👇같다type ConstructorParametersCustomer = [name: string, age: number, isRetired: boolean]
2-12 ReturnType<Type>
ConstructorParametersCustomer
추출 함수 형식ReturnType<Type>
의 반환값 형식.type T1 = ReturnType<() => string | number>;
Type
예👇같다type T1 = string | number
2-13 InstanceType<Type>
T1
구조기에서 생성된 실례 유형을 되돌려줍니다.class Customer {
name: string;
age: number;
isRetired: boolean;
constructor(name: string, age: number, isRetired: boolean) {
this.name = name;
this.age = age;
this.isRetired = isRetired;
}
}
type T1 = InstanceType<typeof Customer>;
InstanceType<Type>
예👇같다type T1 = Customer
2-14 ThisParameterType<Type>
T1
this 매개 변수 유형을 얻을 수 있습니다.type T1 = ThisParameterType<
(this: { name: string; age: number }, arg: string) => void
>;
ThisParameterType<Type>
예👇이렇게type T1 = {
name: string;
age: number;
}
참고로 2-10에 소개된 T1
에서this 파라미터의 유형을 얻을 수 없습니다.type T2 = Parameters<
(this: { name: string; age: number }, arg: string) => void
>;
Parameters<Type>
예👇이렇게type T2 = [arg: string]
2-15 OmitThisParameter<Type>
T2
this 매개 변수 형식을 제거하는 함수 형식을 얻을 수 있습니다.type T1 = OmitThisParameter<
(this: { name: string; age: number }, arg: string) => void
>;
OmitThisParameter<Type>
예👇이렇게type T1 = (arg: string) => void
2-16 ThisType<Type>
T1
object 내의 ThisType<Type>
유형을 this
로 정의합니다.const obj: ThisType<{ name: string; age: number }> = {
info() {
console.log(this.name, this.age);
},
};
Type
내obj
👇이렇게this: {
name: string;
age: number;
}
2-17 Uppercase<StringType>
문자열의 모든 상수 형식을 되돌려줍니다.
type name = Uppercase<"Shinji">;
//type name = "SHINJI" となる
2-18 Lowercase<StringType>
문자열의 모든 작은 문자 형식을 되돌려줍니다.
type name = Lowercase<"SHINJI">;
//type name = "shinji"となる
2-19 Capitalize<StringType>
문자열의 상수 형식을 되돌려줍니다. 첫 번째 문자를 대문자로 변환합니다.
type name = Capitalize<"shinji">;
//type name = "Shinji"となる
2-20 Uncapitalize<StringType>
문자열의 작은 문자 형식을 되돌려줍니다.
type name = Uncapitalize<"SHINJI">;
//type name = "sHINJI"となる
3 마지막
this
,Partial
,Required
,Readonly
,Record
,Pick
등은 모두 평소에 사용하지만 다른 것은 익숙하지 않다.특히
Omit
휘감긴 실용 프로그램형은 사용처를 상상하기 어려워 OSS 사용법을 찾아보거나 type-challenges 등을 통해 이해를 깊게 해보고 싶다!4 참조
Documentation - Utility Types
실용 신제품 | Type Script 시작 서바이벌 Type Type Script
Type Script 4.1에 비밀리에 추가된 intrinsic 키워드 및 string mapped types
타입 스크립트의'형'을 배우고 싶은 당신에게.type-challeenges의 여러분. - Qita.
Reference
이 문제에 관하여(사용하지 않는 유틸리티 유형 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/oreo2990/articles/9cda9a47c771ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)