Inflearn Community Q&A
No author
This post's author information has been deleted.
생성자 함수 타입 abstract new (...args: any) => any
Written on
·
582
0
function test<T extends abstract new (...args: any) => any>(param: T): void{}
class A {
a: string = 'hi'
}
test(A); // 성공
test(new A()); // 실패abstract new (...args: any) => any이 생서자 함수타입이라고 하셨는데
클래스 A의 생성자 함수(constructor)는 prototype 하위에 있고 A의 인스턴스는 __proto__ 내부에 constructor이 있는걸로 알고있는데 왜 클래스만 통과되고 인스턴스는 통과하지 못하는지 궁금합니다.
typescript
Answer 2
1
생성자 함수로서 호출하여 생성된게 인스턴스인데
인스턴스를 생성자 함수 자리에 넣는것 자체가 맞지않다고 생각합니다. 그리고 A의 인스턴스는 __proto__ 는 생성자 함수의 prototype 객체입니다. A는 prototype이 아닌 내부슬롯 [[prototype]] 을 갖고있습니다. 즉 확인하신 인스턴스 __proto__ 의 constructor 는 class A 의 constructor입니다.
0





