1
typescript doc 다음 코드에 대해 뭔가 말한다 :타이프 라이터 생성자는
interface ClockConstructor {
new (hour: number, minute: number): ClockInterface;
}
interface ClockInterface {
tick();
}
function createClock(ctor: ClockConstructor, hour: number, minute: number): ClockInterface {
return new ctor(hour, minute);
}
class DigitalClock implements ClockInterface {
constructor(h: number, m: number) { }
tick() {
console.log("beep beep");
}
}
class AnalogClock implements ClockInterface {
constructor(h: number, m: number) { }
tick() {
console.log("tick tock");
}
}
let digital = createClock(DigitalClock, 12, 17);
let analog = createClock(AnalogClock, 7, 32);
을 ...
createClock의 첫 번째 매개 변수 createClock (AnalogClock, 7, 32, 형 ClockConstructor의 때문에
), AnalogClock에 올바른 생성자 서명이 인지 확인합니다. 당신이 here이유는 무엇입니까 볼 수 있습니다처럼
그러나, 생성자없이 동일한 코드 를 컴파일 오류가 발생하지 않는 이유는 무엇입니까? 내가 놓친 게 있니?