강의

멘토링

커뮤니티

Inflearn Community Q&A

No author

This post's author information has been deleted.

[Renewal] TypeScript All-in-One: Part 1. Basic Grammar

infer type analysis

생성자 함수 타입 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

zerocho님의 프로필 이미지
zerocho
Instructor

이건 에러메시지만 봐도 왜 안되는지 아실 수 있을텐데요?

No author

This post's author information has been deleted.

Ask a question