не может использовать интерфейс, который расширяет другой интерфейс как параметр метода - PullRequest
0 голосов
/ 21 января 2019

У меня 3 интерфейса:

interface IA {
   field1: string
}

interface IB extends A {
   field2: number
}

interface IC {
   test: string;
   myInput: IA
}

и функция:

test(params: IC) {
   ...
}

Я бы хотел, чтобы мой метод мог получать в myInput интерфейс ввода IB, но я могу передавать только интерфейс IA, даже если IB получен из него.

Ошибка, которую я получаю:

error TS2322: Type '{ test: string; myInput: IA }' is not assignable to type 'IA'.
  Object literal may only specify known properties, and 'test' does not exist in type 'IA'.

Я пытался использовать что-то вроде этого, чтобы определить myInput: T<T extends IA> но он не компилируется.

1 Ответ

0 голосов
/ 21 января 2019

Я пробовал как это , кажется, все работает. Откройте консоль, чтобы увидеть результат.

...