2015-09-21 3 views
11

Я пытаюсь определить интерфейс с помощью нескольких методов, и я хотел бы, чтобы один из методов был общим.TypeScript Generic Method Signature in Interface

Это filterUnique метод, поэтому он должен иметь возможность фильтровать списки чисел, строк и т.д.

следующее не компилирует для меня:

export interface IGenericServices { 
    filterUnique(array: Array<T>): Array<T>; 
} 

Есть ли способ сделать это компиляция, или я принимаю концептуальную ошибку где-то здесь?

Cheers!

ответ

15

Тип T еще не определен. Она должна быть добавлена ​​к методу в качестве переменной типа, как:

filterUnique<T>(array: Array<T>): Array<T>; 

Или добавлен в интерфейс, как:

export interface IGenericServices<T> { 
    filterUnique(array: Array<T>): Array<T>; 
}