JavaScript 객체를 인터페이스 속성으로 줄이기
TypeScript에서 인터페이스는 데이터 구조의 청사진 역할을 합니다. 그러나 런타임 중에는 인터페이스가 비어 있으므로 객체에 정의된 속성만 포함하도록 객체를 직접 축소하는 것이 불가능합니다.
구현
그러나 몇 가지 해결 방법이 있습니다. 메서드:
클래스 사용
대신 인터페이스를 클래스로 정의:
class MyInterface { test: string = undefined; }
그런 다음 Lodash를 사용하여 필수 속성을 추출합니다.
import _ from "lodash"; const before = { test: "hello", newTest: "world" }; let reduced = new MyInterface(); _.assign(reduced, _.pick(before, _.keys(reduced))); console.log("reduced", reduced); // contains only "test" property
어셈블리 연산자
또는 어셈블리 연산자를 사용할 수도 있습니다.
let reduced = {...new MyInterface(), ...test};
이것은 빈 "MyInterface" 개체를 병합합니다. "test" 객체로 모든 중복 속성을 덮어씁니다.
이 방법을 사용하는 이유
이 접근 방식은 Angular의 "toJson"을 사용하여 REST 서비스에 데이터를 보낼 때 유용합니다. 방법. "newTest" 속성은 컴파일 중에 액세스할 수 없지만 "toJson"에 의해 변환되어 잘못된 속성으로 인해 REST 서비스가 JSON을 거부하게 됩니다. 객체를 인터페이스 속성으로 축소하여 예상되는 데이터만 전송되므로 서비스와의 적절한 통신이 보장됩니다.
위 내용은 TypeScript에서 JavaScript 개체를 인터페이스 속성으로 줄이는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!