다형성 에 "텍스트 북"사용 사례가 있다고 생각하며 작동하지 않고 있으며이 문제를 파악할 수 없습니다. 나는이 복제 가능한 일부 abstract
기본 클래스를 상상, 예를 들면 : 나는이 작업을 수행 할 때, 나는 오류가 발생다형성이 TypeScript
class Y extends X {
constructor(private x: number) { super() }
clone(): this { return new Y(this.x + 1); }
}
:
abstract class X {
abstract clone(): this;
}
지금 나는 clone
구현을 제공하는 기본 클래스를 구현하려면 그 말은 Type Y is not assignable to type 'this'
입니다. 나는 완전히 혼란스러워. 여기서 전달하고자하는 것은 유형 제한으로, X
의 서브 클래스에 clone
메소드가 호출 된 경우, 돌아 오는 것의 유형이 부속 유형과 동일하게됩니다. 이 정확히 다형성 this
은 무엇입니까? 여기서 내가 뭘 잘못하고 있니?
Here is a link이 코드는 TypeScript 놀이터에 있습니다.
감사합니다. 나는 네가 무슨 뜻인지 알 것 같아. 그러나 컴파일러 https://github.com/Microsoft/TypeScript/pull/4910에서이 기능에 대한 PR에서 명시 적으로 언급 되었기 때문에 (실제로 구현되지는 않았지만) "지원되는 사용 사례가 아닙니다"라고 말하는 것은 이상한 일입니다. –
글쎄, 그 홍보는 1 년 전에 합병되었고,이 유스 케이스를 고쳐야 할 문제가 있은 지 6 개월이 지났습니다.이 유스 케이스는 'PR을받는'것으로 표시되었습니다.나는이 유스 케이스가 현재 지원되지 않는다는 말을 덧붙였다. 그들이 정말로 그것을지지하고 싶다면 그것은 오래 전에 고쳐 졌을 것이다. – artem
안전하지 않은 해결 방법이 포함 된 대체 답변을 제공했습니다. –