我正在尝试用一些方法定义一个接口,并且我希望其中一个方法是通用的。
这是一个
filterUnique
方法,所以它应该能够过滤数字、字符串等列表。
以下内容不适合我编译:
export interface IGenericServices {
filterUnique(array: Array<T>): Array<T>;
}
有没有办法进行编译,或者我在这里犯了一个概念错误?
干杯!
T
类型尚未定义。它需要作为类型变量添加到方法中,例如:
filterUnique<T>(array: Array<T>): Array<T>;
或者添加到界面中,例如:
export interface IGenericServices<T> {
filterUnique(array: Array<T>): Array<T>;
}
将williaster的评论作为答案,因为它也涵盖了许多人正在寻找的这个问题。
您还可以为接口的方法定义泛型,而不需要整个接口的泛型:
interface MyInterface { method: <T>(arg: T) => T; }