Пользовательские свойства для метода унаследованного класса - PullRequest
0 голосов
/ 15 января 2020

Я хочу лучше понять наследование, учитывая приведенный ниже пример, у меня есть два класса User и Person, которые оба простираются от BaseService.

abstract class BaseService {
  read(_props:
    { uuid: string } |
    { id: number }
  ) { 
   return true
  }
}

class UserService extends BaseService { }

class PersonService extends BaseService { }

Можно ли User.read взять user опору и Person.read взять пользовательскую опору? Тогда я бы хотел условно проверить эту опору в BaseService.read.

Думая что-то вроде этого, но я не думаю, что я достаточно там.

class BaseService<T extends string> {
  name: string
  read(_props:
    { uuid: string } |
    { id: number } |
    Record<T, boolean>
  ) { 

  }
}

class UserService extends BaseService<'user'> {
  name = 'user'
}

class PersonService extends BaseService<'person'> {
  name = 'person'
}
...