у меня есть следующий класс в Angular2Angular2 | Машинопись Как вызвать функцию на свойстве с Типы блоков
export class Person {
public children: Person[] | (() => Person[])
}
Таким образом, мое намерение состоит в том, чтобы иметь собственность, чтобы дети либо массив из функции, которая может получить меня массив. Не вдаваясь в то, почему этот класс структурирован таким образом, мне хотелось бы узнать, имеет ли кто-то такую же проблему с типом дескриптора, применяющим этот тип при попытке вызвать person.children().
Ошибка:
Cannot invoke an expression whose type lacks a call signature
Теперь, если я бросаю человека как «любой», ошибка Машинопись уходит (как и ожидалось) и Javascript выполняет функцию не проблема.
Есть ли способ избежать этого приведения?
Это, конечно, кажется, как код запах. Компилятор просто пытается напомнить вам об этом факте. –