如何实现具有多个功能调用签名的打字稿界面

索曼·拉吉
interface SearchFunc {
  (source: string, subString: string): boolean;
 (source: string, subString: string,name:number): boolean;
}

是否可以有一个带有多个函数调用签名的接口?如果是这样,我该如何实施?你能给我一个有意义的例子吗?是否有任何用例,或者我是否正在考虑/以错误的方式进行处理?

约瑟夫船长

这是示例:


interface SearchFunc {
    (source: string, subString: string): boolean;
    (source: string, subString: string, name: number): boolean;
}

const fn: SearchFunc = (source: string, subString: string, name?: number) => true

但是,在您的情况下,您不需要这样的界面。这种技术称为过载

如果有一些限制,重载很有用。

例如,您的返回类型取决于第三个参数:

interface SearchFunc {
    (source: string, subString: string): boolean;
    (source: string, subString: string, name: number): string;
}

const fn: SearchFunc = (source: string, subString: string, name?: number) => null as any

const result = fn('sdf','sdf', 2) // string

const result1 = fn('sdf','sdf') // boolean

或下一个:

interface SearchFunc {
    (source: string, subString: number): boolean;
    (source: number, subString: string): string;

}

const fn: SearchFunc = (source: string | number, subString: string | number) => null as any

const result = fn('sdf', 2)

const result1 = fn(2, 'sdf')

const result2 = fn(2, 2) // error

const result3 = fn('2', '2') // error

函数类型允许fn(2, 2),但不允许使用。接口SearchFunc在此具有更高的优先级。

键入参数:(source: string | number, subString: string | number)只应与接口兼容。

因为根据接口source参数可以是字符串或数字,所以我们还应该在函数签名中将其定义为string|。(要么)number

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在打字稿中实现具有多个匿名函数的接口

来自分类Dev

如何实现打字稿功能重载

来自分类Dev

如何在打字稿中实现同步功能(Angular)

来自分类Dev

导出打字稿功能“缺少通话签名”

来自分类Dev

打字稿-在保留签名的同时包装功能

来自分类Dev

导出打字稿功能“缺少通话签名”

来自分类Dev

打字稿-多个setInterval调用

来自分类Dev

具有多个条件的打字稿条件映射类型

来自分类Dev

打字稿,具有 2 种类型参数和返回值的函数:无法调用类型缺少调用签名的表达式

来自分类Dev

React打字稿-具有界面和其他道具的组件

来自分类Dev

反应/打字稿:参数“道具”隐式具有“任何”类型。使用 IProps 界面后

来自分类Dev

打字稿打字:具有属性的函数

来自分类Dev

如何在打字稿中调用自有函数

来自分类Dev

了解打字稿界面

来自分类Dev

打字稿:找不到导出/ JSX元素类型没有任何构造或调用签名

来自分类Dev

打字稿 TS2604:JSX 元素类型“抽屉”没有任何构造或调用签名

来自分类Dev

如何在打字稿中检索功能签名列表?

来自分类Dev

如何将具有共享依赖关系的多个打字稿文件编译为单个javascript文件?

来自分类Dev

打字稿2:如何添加到现有界面或键入?

来自分类Dev

打字稿调用可以实现一个接口,并使vars私有吗?

来自分类Dev

打字稿:从实现中发出具有不同类型的声明文件?

来自分类Dev

打字稿:声明现有类的功能

来自分类Dev

打字稿,从接口中提取多个呼叫签名

来自分类Dev

完成所有功能语句后的打字稿调用语句

来自分类Dev

打字稿中的原型:元素隐式具有“任何”类型,因为类型“_BaseOption”没有索引签名

来自分类Dev

打字稿:接口中的重载功能如何

来自分类Dev

打字稿:接口中的重载功能如何

来自分类Dev

如何使用打字稿界面输入提示Vue道具?

来自分类Dev

打字稿:如何在界面上引用嵌套类型?

Related 相关文章

  1. 1

    如何在打字稿中实现具有多个匿名函数的接口

  2. 2

    如何实现打字稿功能重载

  3. 3

    如何在打字稿中实现同步功能(Angular)

  4. 4

    导出打字稿功能“缺少通话签名”

  5. 5

    打字稿-在保留签名的同时包装功能

  6. 6

    导出打字稿功能“缺少通话签名”

  7. 7

    打字稿-多个setInterval调用

  8. 8

    具有多个条件的打字稿条件映射类型

  9. 9

    打字稿,具有 2 种类型参数和返回值的函数:无法调用类型缺少调用签名的表达式

  10. 10

    React打字稿-具有界面和其他道具的组件

  11. 11

    反应/打字稿:参数“道具”隐式具有“任何”类型。使用 IProps 界面后

  12. 12

    打字稿打字:具有属性的函数

  13. 13

    如何在打字稿中调用自有函数

  14. 14

    了解打字稿界面

  15. 15

    打字稿:找不到导出/ JSX元素类型没有任何构造或调用签名

  16. 16

    打字稿 TS2604:JSX 元素类型“抽屉”没有任何构造或调用签名

  17. 17

    如何在打字稿中检索功能签名列表?

  18. 18

    如何将具有共享依赖关系的多个打字稿文件编译为单个javascript文件?

  19. 19

    打字稿2:如何添加到现有界面或键入?

  20. 20

    打字稿调用可以实现一个接口,并使vars私有吗?

  21. 21

    打字稿:从实现中发出具有不同类型的声明文件?

  22. 22

    打字稿:声明现有类的功能

  23. 23

    打字稿,从接口中提取多个呼叫签名

  24. 24

    完成所有功能语句后的打字稿调用语句

  25. 25

    打字稿中的原型:元素隐式具有“任何”类型,因为类型“_BaseOption”没有索引签名

  26. 26

    打字稿:接口中的重载功能如何

  27. 27

    打字稿:接口中的重载功能如何

  28. 28

    如何使用打字稿界面输入提示Vue道具?

  29. 29

    打字稿:如何在界面上引用嵌套类型?

热门标签

归档