TypeScript 유틸리티 유형: 가장 유용한 6가지
12206 단어 webdevtypescriptreactjavascript
시작하겠습니다.
기록
유형
keys
의 속성 세트types
로 개체 유형을 구성하려는 경우 레코드가 사용하기에 가장 적합한 유틸리티 유형입니다.예시
사용자 정보를 저장할 개체 유형을 생성하려는 경우 여기에서
Record
유틸리티를 사용하여 동일한 작업을 수행할 수 있습니다.// Our user ID will be a string
type UserID = string
// Defining our available user information types
type UserInfo = {
name: string;
email: string;
avatarUrl: string;
}
const users: Record<UserID, UserInfo> = {
"uuid1": { "name": "user1", "email": "[email protected]", "avatarUrl": "https://user1.com/avatar.png" },
"uuid2": { "name": "user2", "email": "[email protected]", "avatarUrl": "https://user2.com/avatar.png" },
"uuid3": { "name": "user3", "email": "[email protected]", "avatarUrl": "https://user3.com/avatar.png" }
}
If you try to add any other type that does not exist in the
UserInfo
type, the typescript will give a compile error.
부분적
Partial 유틸리티 유형은 기존 유형을 사용하고 싶지만 모든 속성이 선택 사항이 되기를 원할 때 매우 유용합니다.
예시
사용자의 속성을 업데이트하려고 하고 필요한 모든 속성이 포함된 사용자 인터페이스가 이미 있지만 사용자 정보를 업데이트하기 위한 별도의 인터페이스를 만들고 싶지 않다고 가정합니다. 부분 유틸리티를 사용하면 모든 속성이 선택 사항인 유형을 동적으로 생성할 수 있습니다.
// User interface with all required properties
interface User{
id:string;
name: string;
slug: string;
group: string[];
avatarUrl: string;
about: string;
}
// Partial<User> generates a new type based on User with all the property
// keys being optional
const updateUser: Partial<User> = {
about: 'I am a software engineer.'
}
필수의
필수 유틸리티 유형은 부분 유틸리티 유형과 정반대이며 기존 유형을 사용하려고 하지만 모든 속성을 필수로 지정하려는 경우에 매우 유용합니다.
예시
경우에 따라 원래 유형이 일부 속성을 선택 사항으로 정의하더라도 개체에 모든 필수 속성이 포함되도록 해야 할 수 있습니다.
// User type has lastName property as optional
type User = {
firstName: string,
lastName?: string
}
// You want to create a user with both firstName and lastName, so you can use User type with Required utility type to make all the properties as required.
const user1: Required<User> = {
firstName: "John",
lastName: "Doe"
}
생략
생략 유틸리티 유형은 다른 객체 유형에서 특정 속성을 생략하여 객체 유형을 만드는 데 사용할 수 있습니다.
예시
일부 속성 X, Y 및 Z를 가진 객체 유형 사용자가 있다고 가정해 보겠습니다. 속성 Z 없이 객체 유형을 생성하려는 경우 이 유틸리티 유형을 사용할 수 있습니다.
type Product = {
X: string;
Y: string;
Z: string;
}
type ProductWithoutZ = Omit<Product, "Z">;
선택하다
Pick 유틸리티 유형을 사용하면 기존 유형에서 속성을 선택하여 새 유형을 만들 수 있습니다.
부모 구성 요소와 공통된 일부 속성이 있는 자식 구성 요소가 있는 경우 해당 속성을 선택하여 자식에 대한 유형을 만들 수 있습니다.
예시
type ParentType = {
X: string;
T: number;
S: boolean;
}
type ChildType = Pick<ParentType, "X" | "S">
들어오지 못하게 하다
공용체 유형으로 작업할 때 모두가 아닌 특정 구성원에만 공용체 유형을 사용하려는 일반적인 시나리오입니다. 여기서 제외 유틸리티를 사용하여 동일한 결과를 얻을 수 있습니다.
예시
type ReactionUnion = '👍' | '👎' | '😄' | '🎉' | '😕' | '❤️' | '👀' | '🚀'
// This is equivivalent to '👍' | '👎'
type OnlyThumbsUnion = Exclude<ReactionUnion , '😄' | '🎉' | '😕' | '❤️' | '👀' | '🚀'>
요약
이 기사에서는 더 나은 TypeScript 코드를 작성하는 데 도움이 되는 6가지 TypeScript 유틸리티 유형에 대해 논의했습니다.
TypeScript에서 제공하는 더 많은 유틸리티 유형을 확인할 수 있습니다.
here .
이것이 이번 주제의 전부입니다. 읽어 주셔서 감사합니다.
나와 연결
|
Reference
이 문제에 관하여(TypeScript 유틸리티 유형: 가장 유용한 6가지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sachinchaurasiya/typescript-utility-types-the-6-most-useful-2bp4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)