使用typescript内联指定函数的类型

时间:2018-07-17 10:03:08

标签: typescript

打字稿中是否可以定义打字稿中函数的类型(注意:不是箭头函数)?

我知道以下方法:

const MyFunctionCreator = (): MyFunction => {
    return function(input) {
        return "";
    };
};

但是,我试图在类中设置静态函数的类型,所以这不是理想的选择。

class MyClass {
    static function(input) {
        return "";
    }
}

在上面的示例中是否可以做类似的事情:

class MyClass {
    static myFunction: MyFunction(input) {
        return "";
    }

    static myFunction(input) {
        return "";
    } as MyFunction
}

我当然可以每次都重新输入param / return类型,但是我希望在我的课堂上共享类型。

1 个答案:

答案 0 :(得分:1)

您可以使用功能字段代替成员。对于静态字段,差异不大,例如,每次创建对象时它们都会被分配实例字段,因此创建大量实例可能会对性能产生影响。

type MyFunction = (input : string) => number

class MyClass {
    static myFunction: MyFunction = function (input) {
        return input.length; // input is string
    }

    // error wrong return type
    static myFunctionError: MyFunction = function (input) {
        return input; 
    }
}