Typescript переопределяет глубокий ключ - PullRequest
0 голосов
/ 03 февраля 2020

Допустим, у меня есть такой интерфейс

interface Theme {
  a: {
    b?: {
      c: CustomType;
    }
  }
  ...
}

как мне переопределить этот интерфейс темы на новый, изменив b на всегда определенный ?? (Удаление ?), очевидно, я бы хотел сохранить все остальное таким же.

РЕДАКТИРОВАТЬ: У меня нет доступа к CustomType

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Попробуйте:

type NewTheme = Theme & {
  a: {
    b: NonNullable<Theme['a']['b']>
  }
}

Детская площадка

0 голосов
/ 03 февраля 2020

Поскольку parameter?: type является сокращением для parameter: type | undefined, вы можете переопределить интерфейс :

interface Theme1 extends Theme {
  a: {
    b: {
      c: CustomType;
    }
  }
}
...