метод заранее предопределялся?
Пример:
class Foo implements Resolver {
public bar() {
return {
Query: {
some: (arg1, arg2, arg3) => ‘’;
}
}
}
}
abstract class Resolver {
public bar(): {
[key in ‘Query’ | ‘Mutation’]: {
[key: string]: (arg1: string, arg2: number, arg3: any) => any;
}
}
}
Проблема в том, что навешиваю через implements данный абстрактный класс, у меня typescript не предопределяет все аргументы функции some, а просто проверяет на то, что я послал в нее. При этом ругается на то, что нет return-type функции bar
А зачем Resolver зделан классом, почему не интерфэйсом?
Ну окей, допустим интерфейсом, что это меняет?
Вообще в абстрактные классы мы обычно выносим некоторый код который будет иметь смысл только в потомках, здесь же в Resolver кода как такового нет, а есть просто описание типа. Вот я и пытаюсь понять, а почему абстрактный класс? МОжет я конечно что то не понимаю?
Нужно вынести описание возвращаемого типа функции bar в отдельное имя: type MyReturnType = { [key in …]: … } А потом указать его: public bar(): MyReturnType { … } И тогда будет подсказывать и выводить
Это да, но супер неудобно
Из базового оно не выведет
жаль(( спасибо
и тебе, но жду доп инфу про абстрактные классы)
потому что а) почему кто то должен делать дополнительные теловдвижения чтоб тебя послушать? б) наш чат за текстовую подачу информации, остальное удаляется
Если таковы правила чата - ок. Если нет времени - не слушай, имхо, это лишь гемор для того, кто отправил
Ты не понял. Я пытался понять для чего тут использовать класс. Насколько я тебя понял, ты это делаешь только ради public. Ок. твою цель я понял.
Обсуждают сегодня