是否可以使用可选功能在TypeScript中创建接口?
interface IElement {
name: string;
options: any;
type: string;
value?: string;
validation(any): boolean; // --> should be optional.
}
答案 0 :(得分:112)
TypeScript目前有三种语法允许接口中的函数声明:
使用validation
函数的示例,该参数采用1个参数(any
类型)和boolean
返回值:
validation: {(flag: any): boolean};
或更新的语法:
validation(flag: any) : boolean;
或替代方案是:
validation: (flag: any) => boolean;
<强>解决方案:强>
所以使用旧语法使其可选是很容易的:
validation?: {(flag: any): boolean};
使用第二种语法(最近添加 - 感谢@toothbrush
)
validation?(flag: any) : boolean;
或第三种语法(如您所见):
validation?: (flag: any) => boolean;