2017-12-21 2 views
0

에서 기본 클래스의 유형을 얻을 난 그냥타이프 : 인터페이스

class Animal { 

} 

을 좋아하고 내가

class Dog extends Animal {} 
class Bird extends Animal {} 

지금, 나는 인터페이스가 포함 정의 할 두 자식 클래스처럼이 기본 클래스가

interface Zoo{ 
    name: string; 
    animal: Animal; 
} 

같은 동물 클래스, 그리고 그것을

,369를 사용
const myZoo: Zoo = { 
    name: 'zooName', 
    animal: Dog // problem is here 
} 

하자, 실패했습니다. 그래서 내가 무엇을해야하니? 감사.

답변

1

당신은 typeof 운영자

interface Zoo { 
    name: string; 
    animal: typeof Animal; 
} 

이것은 DEMO입니다 귀하의 인터페이스를 정의 할 필요가있다.

+0

괜찮지 만 'new myZoo.animal()'과 같은 다른 곳에서는'new Dog()'하고 싶습니다. 그래서 나는 여기에 새로운 개()를 넣을 수는 없지, 그렇지? – Senasiko

+0

@Senasiko 내 대답을 편집했습니다 –

+0

대단히 감사합니다. 그리고 나는 너무 어리 석다. 방금 최근에 당신의 방법을 시도해 봤는데, 그 중 하나는 myZoo.animal가'Animal'을 확장하지 않는다는 것을 알았습니다 ... – Senasiko

관련 문제