TypeScript 부분 유형의 작동 방식

TypeScript의 Partial 유형은 Required 과 반대되는 유틸리티 유형입니다. 유형의 모든 속성을 선택 사항으로 설정합니다.

어떻게 작동하는지 살펴보겠습니다. 반대 문제에 관심이 있다면 TypeScript에서 필수 유형이 작동하는 방식에 대한 제 기사를 참조하세요.

TypeScript의 부분 유형



TypeScript에서는 ?를 사용하여 유형을 선택 사항으로 정의할 수 있습니다. 물음표. 예를 들어 아래 코드에서 lastName은 선택 사항입니다. 따라서 firstUser에 User 유형이 있더라도 lastName은 필요하지 않으므로 생략할 수 있습니다.

type User = {
    firstName: string,
    lastName?: string
}

let firstUser:User = {
    firstName: "John"
}


때때로 우리가 상속하거나 사용하는 유형에 선택적 유형이 없지만 특정 상황에서 일부 속성이 누락될 수 있음을 알고 있습니다. 다음 예를 살펴보십시오. 여기에서 lastName은 더 이상 선택 사항이 아니지만 firstUser에는 아직 없습니다.

type User = {
    firstName: string,
    lastName: string
}

let firstUser:User = {
    firstName: "John"
}


이 코드는 User 유형의 firstUser에 lastName라는 속성이 있어야 하므로 오류가 발생합니다.

Property `lastName` is missing in type `{ firstName: string; }` but required in type `User`.


이 오류를 피하려면 firstUser의 유형을 Partial<User>로 변경해야 합니다. 그러면 TypeScript에 User 유형의 모든 속성을 선택 사항으로 설정하도록 지시합니다.

type User = {
    firstName: string,
    lastName: string
}

let firstUser:Partial<User> = {
    firstName: "John"
}


이것은 궁극적으로 User 유형을 다음과 같이 재정의하는 것과 동일합니다.

type User = {
    firstName?: string,
    lastName?: string
}


유일한 차이점은 이제 두 가지를 모두 사용할 수 있다는 것입니다. 유형에 일부 속성이 누락되도록 하려면 Partial을 사용할 수 있습니다. 그렇지 않은 경우 일반 사용자 유형을 사용할 수 있습니다.

type User = { 
    firstName: string, 
    lastName: string 
}
let firstUser:Partial<User> = { firstName: "John" } 
let secondUser:User = { firstName: "John", lastName: "Doe" }


TypeScript의 다른 많은 유틸리티 유형과 마찬가지로 Partial은 위의 User 유형과 같은 객체로 정의된 인터페이스 또는 사용자 정의 유형과 함께 작동하기 위한 것입니다. 따라서 변수와 같은 것에는 작동하지 않습니다.

이 빠른 안내서가 마음에 드셨다면 자세한 내용을 확인하십시오TypeScript content here .

좋은 웹페이지 즐겨찾기