08/02
Method Chaining 이란
method 가 객체를 반환하게 되면, 그 반환 값인 객체를 통해 또 다른 함수를 호출할 수 있다.
이런 프로그래밍 패턴을 method chaining 이라고 한다.
기본적으로 oop 로 코딩을 하다 보면 알게 모르게 자연스럽게 많이 사용하게 되는데,
문장을 마치지 않고 호출을 이어갈 수 있기 때문에, 가독성을 향상시키는 데 도움이 된다.
주의할 점은,
한 문장에서 여러번의 메소드 호출이 이뤄지므로, 에러가 발생하는 지점을 하나씩 확인 해야 된다는 점.
return 값이 메소드마다 다르기 때문에 최종적으로 할당되는 값은 최초 원하던 값이 아닐 수 있다는 점.
상속 관계에서 부모의 메소드를 호출하면 부모의 타입으로 변경되므로 명시적 캐스팅을 필요로 한다는 점.
=> 이때는 오히려 편의성과 가독성을 해치게 된다.
해결 방법은,
return Type을 제네릭으로 선언해 상속시 동일 형태로 반환 되도록 구성할 수 있다.
그나마 TS가 type 오류를 띄워줘 삽질을 덜 할 수 있었지만, JS였으면 뭐가 잘못됐는지 모르고 한참 헤맬뻔 했다...