打字稿的新手,所以也许我在这里遗漏了一些东西……
我试图在我制作的容器上编写一个简单的过滤器功能
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似乎毫无意义。我在这里没有声明该功能,只是给它签名。为什么这个有效的打字稿?
答案 0 :(得分:1)
官方原因似乎是“帮助提高可读性”
函数的类型具有两个相同的部分:参数的类型和返回类型。写出整个函数类型时,两个部分都是必需的。 我们像参数列表一样写出参数类型,为每个参数指定名称和类型。此名称只是为了提高可读性。 ...
您是正确的,没有使用名称。