인터페이스를 변경하지 않고 인터페이스 속성을 선택적으로 만드는 방법??
4255 단어 angular
예를 들어 이를 달성할 수 있는 방법으로 시작하겠습니다.
interface CustomerDetails{
firstName: string,
lastName: string,
mbNumber: string,
adress: string
}
firstCustomer:CustomerDetails={
firstName: 'Nikhil',
lastName: 'Dhawan'
}
여기에 아래 오류 메시지가 표시됩니다. 이는 단순히 모든 속성이 없음을 의미합니다.
Type '{ firstName: string; lastName: string; }' is missing the following properties from type 'CustomerDetails': mbNumber, address
이 상황을 어떻게 바로잡을 수 있습니까?
마음에 오는 첫 번째 방법은 모든 속성을 다음과 같이 선택 사항으로 만드는 것입니다.
interface CustomerDetails{
firstName?: string,
lastName?: string,
mbNumber?: string,
address?: string
}
firstCustomer:CustomerDetails={
firstName: 'Nikhil',
lastName: 'Dhawan'
}
이 접근 방식은 확실히 오류를 해결하지만 모든 인터페이스로 이동하고 속성을 선택 사항으로 만드는 것보다 이를 처리하는 더 우아한 방법이 있습니다.
interface CustomerDetails{
firstName: string,
lastName: string,
mbNumber: string,
address: string
}
firstCustomer:Partial<CustomerDetails>={
firstName: 'Nikhil',
lastName: 'Dhawan'
}
여기서는 기본 인터페이스에 대한 속성 옵션을 만드는 데 도움이 되는 Partial<>을 사용했습니다.
따라서 이제 이러한 방식으로 작성하면 실제 인터페이스를 수정하지 않고도 동일한 동작을 달성할 수 있습니다.
이것이 새롭고 흥미로운 것을 배우는 데 도움이 되었기를 바랍니다. 이미 이것을 알고 있다면 다른 사람들도 이것을 배울 수 있도록 공유하거나 제안 사항이 아래에 나에게 연락하거나 의견을 말하십시오. 다음 시간까지 해피 러닝.
피드백을 공유하세요.
Reference
이 문제에 관하여(인터페이스를 변경하지 않고 인터페이스 속성을 선택적으로 만드는 방법??), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/this-is-angular/how-to-make-interface-properties-optional-without-changing-interface-41pm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)