是否可以在TypeScript中创建带有可选功能的接口?

interface IElement {
  name: string;
  options: any;
  type: string;
  value?: string;
  validation(any): boolean; // --> should be optional.

}

推荐答案

目前,TypeScript允许在接口中使用三种语法进行函数声明:

validation函数为例,使用1个参数(any类型)和boolean个返回值:

validation: {(flag: any): boolean};

或者使用较新的语法:

validation(flag: any) : boolean;

或者另一种 Select 是:

validation: (flag: any) => boolean;

Solution:

因此,使用旧语法使其可选很容易:

validation?: {(flag: any): boolean};

使用第二种语法(最近添加了@toothbrush个)

validation?(flag: any) : boolean;

或者使用第三种语法(如您所见):

validation?: (flag: any) => boolean;

Typescript相关问答推荐

当类型不能undefined时,如何使编译器抛出错误?

如何在类型脚本中声明对象其键名称不同但类型相同?

为什么typescript不能推断类的方法返回类型为泛型''

接口的额外属性作为同一接口的方法的参数类型'

输入元素是类型变体的对象数组的正确方法是什么?'

有条件地删除区分的联合类型中的属性的可选属性

适当限制泛型函数中的记录

在函数中打字推断记录的关键字

记录键的泛型类型

如何使用Geojson模块和@Types/Geojson类型解析TypeScrip中的GeoJSON?

如何在NX工作区项目.json中设置类似angular.json的两个项目构建配置?

如何在方法中正确地传递来自TypeScrip对象的字段子集?

为什么我在这个重载函数中需要`as any`?

tailwind css未被应用-react

为什么TypeScrip假定{...省略类型,缺少类型,...选取类型,添加&>}为省略类型,缺少类型?

是否可以定义引用另一行中的类型参数的类型?

如何在TypeScript中将元组与泛型一起使用?

类型分布在第一个泛型上,但不分布在第二个泛型上

Typescript 从泛型推断类型

可选通用映射器函数出错