function getPage(name: 'A' | 'B' | 'C') {
switch (name) {
case 'A':
return new A();
case 'B':
return new B();
case 'C':
return new C();
}
}
Как сделать так, что бы при ее вызове, была типизация по классам, ну и так же можно было вызывать методы класса?
те
getPage('A').foo() // ok
getPage('B').foo() // err
Просто в данный момент, это так не работает, и можно вызвать только те методы, которые есть во всех классах.
+ я делал фабрику с дженериками (https://www.typescriptlang.org/docs/handbook/generics.html#using-class-types-in-generics), а результат тот же, можно вызвать только общие методы .
(any не идет :) )
Спасибо.
думаю проще всего через перегрузки https://www.typescriptlang.org/play/#code/MYGwhgzhAECC0G9oDMD2rYAoCUiC+0eAUKJDAEKIrrk76EnhTQDCVaqLdCBxRyAVwB2wAC4BLVEOgBzAKaiACmHmYhYALZyAXNADksPdl2x+wsZOnylKuWs0795I7vJmREqbIXLV6rbp6LC6s7hZe1r52-o4GetAAPk7xSUFGiETQWdAQAO7iosAAFtD2WrgImdnVwJBy+obaVdUt0ABOCgJt0kJyuXA4ANzNLbUQ9XrOTa2tHaJdPX3QtNjDM9BjE8HT69lzC9C9-VyrI8R8kbaYAESw19gAdBxY2EA
Обсуждают сегодня