Closed JaeHye0k closed 5 hours ago
타입 에러 없이 실제 실행까지 되는 코드는 다음과 같습니다.
declare class A {
name: string;
constructor(name: string)
}
function A(this: A | void, name: string){
if (new.target && this) {
this.name = name;
return this;
} else {
return { name };
}
}
new A('zerocho');
A('zerocho');
답변 감사합니다! 덕분에 new.target 이라는 속성도 알아가네요!
위 코드는 책에 나와있는 예시 코드입니다. 위와 같이 코드를 작성하면 클래스가 있을 때 new 키워드를 붙이지 않아도 되게 한다고 나와있습니다. 하지만 TypeScript playground 에서 실행 시 해당 코드가 다음과 같은 자바스크립트 코드로 변환되어 Maximum call stack size exceeded 에러가 발생합니다.
실제로 사용하려면 어떻게 사용해야되는지 알려주실 수 있나요?