내가 타이프의 extends
제약 조건을 사용하고, 그래서 같은 "확장" , Animal
하위 유형 대신 Animal
을 사용할 수 있도록 주문 했습니까?타이프 라이터는 일반적인 제약
3
A
답변
3
는 T에 동물을 주조, 그것은 작동합니다. (미래의 독자를 위해) 자신의 의견에 따르면
class ZooKeeper<T extends Animal> {
constructor(p: T = <T>new Animal()) {
}
}
당신은 또한 수행 할 수 있습니다
class ZooKeeper<T extends Animal> {
constructor(p: T = new Animal() as T) {
}
}
1
당신은 생성자의 매개 변수 선언에서 지정을 떠날 수는, 나를 위해 제대로 컴파일 것으로 보인다. 매개 변수를 생략 할 수도 있습니다.
UPDATE : 지적series0ne,이 솔루션은 하나가 제공되지 않은 Animal
의 기본 인스턴스를 제공하지 않습니다!
class ZooKeeper<T extends Animal> {
constructor(p?: T) {
}
}
var zk = new ZooKeeper<Lion>(new Lion());
var zk2 = new ZooKeeper(new Animal());
var zk3 = new ZooKeeper();
는 ZooKeeper
클래스는 입력 될 것입니다 그리고 당신은 T
의 자식 클래스의 특정 속성에 액세스 할 수 있습니다.
관련 문제
- 1. 타이프 라이터는 -
- 2. 타이프 라이터는 -> ES5 문제
- 3. 왜 타이프 라이터는 재귀 함수
- 4. 타이프 라이터는 내가이 코드를 인터페이스
- 5. 타이프 라이터는 수출 외부 개체 특성
- 6. 타이프 라이터는 각 2 NG 책의 구문은
- 7. Angular2 타이프 라이터는 중포 기지 JSON은
- 8. 타이프 라이터는 노드 (FS, child_process 등)에서 const를 선언
- 9. Django의 일반적인 관계 제약
- 10. 일반적인 제약 모두 상속
- 11. 타이프
- 12. 일반적인 교육 제약 처리 예제
- 13. 타이프 라이터는 :이 유형의 "클래스 변수" "다른 클래스"에 의해 의미합니까 무엇
- 14. 오류 타이프
- 15. 강력한 타이프 타이프 콜렉션
- 16. 제약 조건이있는 일반적인 방법을 구현하는 방법
- 17. 일반적인 제약 조건을 가진 일반 메서드
- 18. 타이프
- 19. 타이프
- 20. 타이프 :
- 21. 는 타이프
- 22. 타입 T는 타이프
- 23. 루씬 하이 라이터는 예외 내가 얻을 IllegalArgumentException가
- 24. 타이프 라이터는 : 사용자 정의 형식화 된 배열을 사용할 수 없습니다 누르면 다음과 같이 I 사용자 정의 유형이 타이프 (V1.4.1)와 자바 스크립트를 사용
- 25. 타이프 레퍼런스에서 타이프 레퍼런스는 대소 문자를 구별합니까?
- 26. 타이프 라이터 생성 된 JavaScript이 타이프 함수
- 27. 는 타이프
- 28. 는 타이프
- 29. 타이프 라이터
- 30. 타이프 라이터
방출 된 JS를 보면 p : T = new Animal()이 제공되지 않은 기본 인스턴스 (Animal)를 방출한다는 것을 알 수 있습니다. 당신의 구현은 이것을하지 않을 것입니다! – series0ne
JS 출력을 보았습니다. 그렇습니다. 차이점이 있습니다. 나는 당신의 질문을 완전히 이해하지 못했습니다, 미안 해요. – ther
문제 없습니다. 학습 곡선의 모든 부분, 내 친구. 내 의견을 반영하도록 답변을 업데이트하는 경우, downvote를 제거합니다. – series0ne