调用签名
在 JavaScript 中,函数除了可调用之外还可以具有属性。 但是,函数类型表达式语法不允许声明属性。 如果我们想用属性描述可调用的东西,我们可以在对象类型中编写调用签名:
In JavaScript, functions can have properties in addition to being callable. However, the function type expression syntax doesn't allow for declaring properties. If we want to describe something callable with properties, we can write a call signature in an object type:
type DescribableFunction = {
description: string;
(someArg: number): boolean;
};
function doSomething(fn: DescribableFunction) {
console.log(fn.description + " returned " + fn(6));
}
g0/kDv0jMGWz9z/c+SxYPZn9oAgTc3xeJ53wDZ5DCiB4m4xdEovc4R9BJ1G/hRQ/+Gs3DBBLWoXOdFOckxJvp/M7psOlt0thgC9XVveoP1Uag+NTgwPOnAnZ3Gj3cF+s4royw1q5FFfIwGX/5DOmKGmOw4+kej1KXW9T+S+6YTWjD4zRjDqTZLq0w1FPaUxrM1OPdS0vdHmHXWMl319Fy1tM9yUjnk1z6mlrh8+riqaKW0RiJxjWFQtrGBmwogbTvtmGy5y1CnQYb9Ex3yLlxWJLpTUkqJckHdwETFVEZJJg4eQW7yNvzsykuRSB5VZ/I+QTgTQhGIrpbhkdMUuENfKnoFsAmvHX1aW72fSYJHfNRXPVMviv67ovGIAyRhinTggNl31yFJTfXnynG1bbAsWW1VZhmnAIlSHe9XxpcUEBtJHeiR56QeGnfbLJUD6yxWAHRxyjOr11/R0BRU5gR3uKLwMo2jtZUPOiLmu8znI=