接口中的 TypeScript 通用方法签名

Posted

技术标签:

【中文标题】接口中的 TypeScript 通用方法签名【英文标题】:TypeScript Generic Method Signature in Interface 【发布时间】:2015-09-21 21:12:23 【问题描述】:

我正在尝试使用一些方法定义一个接口,并且我希望其中一种方法是通用的。

它是一个filterUnique 方法,所以它应该能够过滤数字、字符串等列表。

以下内容不适合我:

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

有没有办法让这个编译,或者我在这里的某个地方犯了一个概念错误?

干杯!

【问题讨论】:

【参考方案1】:

T 类型尚未定义。它需要作为类型变量添加到方法中,例如:

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

或者添加到界面中如:

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

【讨论】:

如果对别人有帮助,你也可以为接口的方法定义一个泛型,而不需要整个接口的泛型:@ 987654324@ @williaster 如果您将其作为答案发布,您将获得我的支持,因为当我登陆此页面时,该语法正是我所寻找的。谢谢!小修正,把:改成=&gt;&lt;T&gt;(arg: T) =&gt; T;

以上是关于接口中的 TypeScript 通用方法签名的主要内容,如果未能解决你的问题,请参考以下文章

Typescript - 具有通用类型函数的索引签名

具有通用方法的Typescript接口

Typescript索引和接口继承

在 TypeScript 中扩展和定义函数签名

pay支付参数验签失败咋回事

常见验签规则