TypeScript 부분 유형의 작동 방식
어떻게 작동하는지 살펴보겠습니다. 반대 문제에 관심이 있다면 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 .
Reference
이 문제에 관하여(TypeScript 부분 유형의 작동 방식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/smpnjn/how-the-typescript-partial-type-works-2klj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)