typescript - TypeScript 接口函数语法
问题描述
我想了解以下 TypeScript 函数的语法。
export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn
{
return (control: AbstractControl): {[key: string]: any} | null => {
const forbidden = nameRe.test(control.value);
return forbidden ? {'forbiddenName': {value: control.value}} : null;
};
}
这里:AbstractControl:https ://angular.io/api/forms/AbstractControl
我的理解是:
禁止名称验证器:用户定义函数的名称。
nameRe: RegExp : 函数参数 -禁止名称验证器。
ValidatorFn:函数的返回类型-forbiddenNameValidator。
从这里:https ://angular.io/api/forms/ValidatorFn
interface ValidatorFn
{
(control: AbstractControl): ValidationErrors | null
}
该文档说这(control: AbstractControl): ValidationErrors | null
是一个功能。
这里的哪个符号表明它是一个函数?我读过那个=>
符号代表功能。
解决方案
这里的哪个符号表明它是一个函数?我读过 => 符号代表函数。
有几种不同的方法可以创建函数类型。您在此处看到的只有在您定义一个接口并且想要指定该接口也是可调用的时才会出现。语法是将左侧的参数列表用括号括起来,然后是冒号,然后是右侧的返回值。
您可以在此处查看有关此特定语法的更多信息:https ://www.typescriptlang.org/docs/handbook/interfaces.html#function-types
以及这里做函数的其他方式,包括=>
你熟悉的版本:https ://www.typescriptlang.org/docs/handbook/functions.html
如何
control: AbstractControl
在该代码的以下部分接收参数?
这些行只是创建然后返回验证器函数。尚无control
对象存在。最终有人会调用这个新的验证器函数,他们有责任传入一个适当的对象。
推荐阅读
- typescript - ngOninit 中的 Angular 6 调用服务函数
- python - 'csrf_token': ['CSRF 令牌丢失。'] >> flask_wtf
- r - 从内部提取对象名称
- akka - “throughput-deadline-time”配置选项有什么作用?
- ios - 函数collectionView函数didSelectItemAt不起作用
- mysql - 使用 SELECT 和 JOIN 语句将多个数据插入表中
- ios - 自定义 UICollectionViewLayout 为不存在的 indexpath 传递布局属性
- javascript - 为什么节点类“选定”在 d3 中刷完后消失了
- vue.js - Vuex this.$store 不是函数,但是 this.$store.dispatch 被执行
- javascript - 如何在 Selenium C# 中更改 Chrome 窗口的缩放比例