interface A { x: string; y: boolean; } interface B extends Omit<A, 'x'> { x: number; }
A 에서 B로 extends 받는 상황에서, A의 다른 prop 들은 다 그대로 extends 받고 그중에서 x라는 prop 만 string 에서 number 로 바꾸고 싶을때 위와같이 하면된다.
Omit<A, 'x'> 문법은 A라는 인터페이스에서 x prop 을 제거하겠다는 뜻이다.
Omit<A, 'x'>
참고 : https://stackoverflow.com/questions/41285211/overriding-interface-property-type-defined-in-typescript-d-ts-file