abstract new (...args: any) => any는 무엇일까요? 우선 new (...args: any) => any는 모든 생성자 함수를 의미하는 타입입니다. 클래스를 포함해서요. 다만 추상 클래스는 포함하지 않습니다. 추상 클래스까지 포함하려면 abstract new (...args: any) => any로 타이핑해야 합니다.
3.1, 3.2, 3.3절에 있는 타입들은 외우지 말고 타입이 만들어진 원리를 생각해서 스스로 만들 수 있게 연습해야 합니다. 그래야 나중에 이를 활용하여 더 복잡한 타입을 만들 수 있습니다.