У меня есть следующий код:не перегружать функции с родовым типом расширения другого типа
public static testMethod<T extends MyModule.ITest>(fromArray: T): T;
public static testMethod<T extends MyModule.ITest>(fromArray: T[]): T[];
public static testMethod<T extends MyModule.ITest>(fromArray: (T|T[])): (T|T[])
{
return null;
}
module MyModule
{
export interface ITest
{
}
}
Машинописи жалуется на «Дублировать идентификатор„TestMethod“» и «Функция„TestMethod“объявлен непустым тип возвращаемого, но не имеет выражения возврата "на возвращаемые типы функций без тела. Если я удаляю «extends ITest» из родового типа, все работает.
Вопрос с 'IBase'. Можете ли вы добавить 'IBase' и' ObservableArray' к вашему вопросу. Я предполагаю, что 'IBase' определяет' deepCopyArray' таким образом, который несовместим с 'ObservableArray'. – thoughtrepo
IBase не имеет определения deepCopyArray. IBase - это тип элементов ObservableArray и не имеет никакого отношения к deepCopyArray. Я изменил свой вопрос, чтобы показать упрощенный пример, который не включает эти более сложные типы, которые не имеют отношения к делу. – Michelle