【问题标题】:Why do Typescript function type signatures include parameter names为什么 Typescript 函数类型签名包含参数名称
【发布时间】:2019-05-20 10:14:21
【问题描述】:

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

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

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

并且 tslint 给了我一个关于以大写字母开头的变量的错误(这是我故意制定的规则)。起初我不确定它是什么意思,但显然它将 (T) => boolean 中的 T 作为参数的名称,而不是类型。在谷歌搜索了一些打字稿回调示例后,我看到每个人都将函数签名输入为

(paramName: ParamType) => ReturnType. 

但这里的 paramName 似乎毫无意义。我不是在这里声明函数,我只是给出它的签名。为什么这是有效的 Typescript?

【问题讨论】:

  • 这个q&a已经处理了一个类似的问题。

标签: typescript


【解决方案1】:

官方的理由似乎是为了“提高可读性”

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

-- TypeScript Handbook - Functions

没有使用名称是正确的。

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 2014-05-09
    • 2021-09-03
    • 2020-01-19
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 2017-06-28
    相关资源
    最近更新 更多