인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편

infer 타입 분석

생성자 함수 타입 abstract new (...args: any) => any

작성

·

501

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이 있는걸로 알고있는데 왜 클래스만 통과되고 인스턴스는 통과하지 못하는지 궁금합니다.

답변 2

1

생성자 함수로서 호출하여 생성된게 인스턴스인데
인스턴스를 생성자 함수 자리에 넣는것 자체가 맞지않다고 생각합니다. 그리고 A의 인스턴스는 __proto__ 는 생성자 함수의 prototype 객체입니다. A는 prototype이 아닌 내부슬롯 [[prototype]] 을 갖고있습니다. 즉 확인하신 인스턴스 __proto__ 의 constructor 는 class A 의 constructor입니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기