首页 > 解决方案 > 打字稿:在声明“函数”类型的属性时指定函数返回类型

问题描述

在这段代码中:

export class FormElement {
    ...
    min?: number | Function;
    step?: number | Function;
    ...
}

我如何指定如果我设置一个函数min或者step它应该返回一个数字?甚至有必要指定它可以是一个函数吗?

标签: typescriptproperties

解决方案


接受未指定数量的参数并返回数字的函数的类型签名是

(...args: any) => number;

你可以给它一个名字并像这样使用它:

type FunctionReturningNumber = (...args: any) => number;

export class FormElement {
    min?: number | FunctionReturningNumber;
    step?: number | FunctionReturningNumber;
}

const formElement = new FormElement();
formElement.min = 3; // okay
formElement.min = () => 3; // okay
formElement.min = (x: string, y: number, z: boolean) => 3; // okay
formElement.min = () => "whoopsie"; // error! string is not number

好的,希望有帮助。祝你好运!

链接到代码


推荐阅读