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

我经常这样声明一个函数

type Search = (source:string,subString:string)=>void

为什么类型脚本可以使用接口来声明函数?这是什么目的? 非常感谢

推荐答案

在TypeScrip中,接口和类型都可以用来描述复杂类型,包括函数类型.然而,它们有一些不同之处和用例,可能使它们在某些场景中比另一个更适合.

TypeScript中的接口定义了一个对象必须遵守的合约.它们非常适合描述对象的形状,也可以描述函数类型.当你使用接口定义一个函数时,你实际上是定义了一个函数签名,任何函数(声称实现这个接口)都必须遵守这个签名.这很有用,例如,当您想要确保作为回调传递的函数或存储在对象中的函数遵循特定的.

总之,是否使用接口或类型别名在TypeScrip中声明函数类型取决于您的特定需要.如果您希望利用类实现和声明合并等功能,则可能需要使用接口.但是,如果您需要更灵活地表示各种类型,则类型别名可能是更好的 Select .

Typescript相关问答推荐

在TypScript手册中可以视为接口类型是什么意思?

如何从具有给定键列表的对象类型的联合中构造类型

TypeScript泛型参数抛出错误—?&#"' 39;预期"

将对象属性转换为InstanceType或原样的强类型方法

如何解决类型T不能用于索引类型{ A:typeof A; B:typeof B;. }'

对未到达受保护路由的路由环境做出react

CDK从可选的Lambda角色属性承担角色/复合主体中没有非空断言

如何使所有可选字段在打印脚本中都是必填字段,但不能多或少?

类型';字符串|数字';不可分配给类型';未定义';.类型';字符串';不可分配给类型';未定义';

接受字符串或数字的排序函数

错误:NG02200:找不到类型为';对象';的其他支持对象';[对象对象]';.例如数组

为什么我的函数arg得到类型为Never?

设置不允许相同类型的多个参数的线性规则

顶点堆叠的图表条形图未在正确的x轴上显示

类型脚本中函数重载中的类型推断问题

typescript如何从映射类型推断

有没有一种简单的方法可以访问Keyboard Shortcuts JSON文件中列出的每个命令的显示名称(标题)?

在类型{}上找不到带有string类型参数的索引签名 - TypeScript

在Typescript 无法正常工作的 Three.js 中更新动画中的 GLSL 统一变量

类型string不可分配给类型string| 联盟| 的'