인터페이스 적합성을 위한 객체 감소
TypeScript에서 인터페이스는 객체의 속성에 대한 계약을 정의하고 클래스는 해당 인터페이스를 구현합니다. 그러나 객체를 JSON으로 변환하는 JSON.stringify()와 같은 도구를 사용할 때 인터페이스에 정의된 것 이상의 추가 속성이 있는 객체를 만나는 것이 일반적입니다.
이 문제를 해결하려면 다음을 줄여야 합니다. 구현하는 인터페이스의 속성만 포함하는 객체입니다.
문제:
JSON.stringify()를 사용하여 추가 속성이 있는 객체를 JSON으로 변환하려고 시도하면 추가 속성이 출력에 포함되어 잠재적으로 JSON이 무효화됩니다.
해결책 1:
TypeScript 인터페이스에는 런타임 표현이 없으므로 속성 제한을 적용하는 데 사용할 수 없으므로 해결 방법이 필요합니다. 인터페이스를 클래스로 정의하면 Lodash와 같은 라이브러리를 사용하여 대상 개체에서 인터페이스에 정의된 속성만 선택할 수 있습니다.
예:
<code class="typescript">import _ from 'lodash'; const reducedObj = new MyInterface(); _.assign(reducedObj, _.pick(originalObj, _.keys(reducedObj)));</code>
이 방법은 다음을 보장합니다. 축소된 객체에는 인터페이스에 정의된 속성만 포함되어 있습니다.
해결책 2:
또 다른 접근 방식으로 대상 개체의 속성을 수동으로 반복하여 각 속성이 인터페이스 정의에 존재하는지 확인할 수 있습니다. 그렇다면 속성이 축소된 개체에 추가됩니다. 이 방법을 사용하려면 의도하지 않은 속성을 추가하지 않도록 세심한 주의가 필요합니다.
JavaScript에서 TypeScript 인터페이스와의 속성 적합성을 강제할 직접적인 방법은 없지만 이러한 해결 방법은 인터페이스 정의에 맞게 객체를 줄이는 실용적인 솔루션을 제공합니다.
위 내용은 TypeScript의 인터페이스에 맞게 객체를 어떻게 줄일 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!