为什么Typescript函数类型签名包含参数名称

时间:2018-12-19 21:27:12

标签: typescript

打字稿的新手,所以也许我在这里遗漏了一些东西……

我试图在我制作的容器上编写一个简单的过滤器功能

class Container<T> {
    filter(predicate: (T) => boolean): Container<T> {
        for(const element of this.contents) {
            if(predicate(element))

和tslint给我一个关于以大写字母开头变量的错误(这是我有目的的规则)。我一开始不确定是什么意思,但是显然它是用(T)=>布尔值中的T作为参数的名称,而不是类型。在搜索了一些打字稿回调示例之后,我看到每个人都将函数签名键入为

(paramName: ParamType) => ReturnType. 

但是,这里的paramName似乎毫无意义。我在这里没有声明该功能,只是给它签名。为什么这个有效的打字稿?

1 个答案:

答案 0 :(得分:1)

官方原因似乎是“帮助提高可读性”

  

函数的类型具有两个相同的部分:参数的类型和返回类型。写出整个函数类型时,两个部分都是必需的。 我们像参数列表一样写出参数类型,为每个参数指定名称和类型。此名称只是为了提高可读性。 ...

     

-TypeScript Handbook - Functions

您是正确的,没有使用名称。