인터페이스를 변경하지 않고 인터페이스 속성을 선택적으로 만드는 방법??

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<>을 사용했습니다.

따라서 이제 이러한 방식으로 작성하면 실제 인터페이스를 수정하지 않고도 동일한 동작을 달성할 수 있습니다.

이것이 새롭고 흥미로운 것을 배우는 데 도움이 되었기를 바랍니다. 이미 이것을 알고 있다면 다른 사람들도 이것을 배울 수 있도록 공유하거나 제안 사항이 아래에 나에게 연락하거나 의견을 말하십시오. 다음 시간까지 해피 러닝.
피드백을 공유하세요.

좋은 웹페이지 즐겨찾기