gpt4 book ai didi

typescript - 我应该在 TypeScript 中输入所有内容吗

转载 作者:行者123 更新时间:2023-12-02 02:55:58 25 4
gpt4 key购买 nike

比如我有一个函数:

functiom sum(a: number, b: number) { return a + b }

在上面的函数中,我是否应该注释函数的返回类型是number?因为我认为开发人员和编译器都可以推断出函数的结果必须是 number 类型。

也像 Angular 中的 httpClient.get 方法返回 Observable 类型,它已经在它的签名中定义了,我应该在我的代理消费者函数中显式声明它吗?

function getPosts() {
return this.httpClient.get();
}

所以我的问题是我应该输入所有内容吗?如果没有,我应该什么时候输入。

最佳答案

在同时具有类型推断和显式 list 类型注释的编程语言中,您可以将显式 list 类型注释视为等同于会计中的复式簿记:当您做对所有事情时,永远不需要它,因为推断类型和显式类型始终相同,但是当您犯错时,它可以帮助您发现错误。

一个好的经验法则是:

Every public interface should be explicitly annotated.

是否注释私有(private)接口(interface)是您的选择。

就我个人而言,我有一个稍微轻松一点的版本:

Every public interface should be explicitly annotated, unless the type is blindingly obvious both from the name and the implementation.

所以,对于类似的东西

export function toString() { return "Dummy user"; }

我觉得省略类型注释是可以的,但其他人不同意。

在您的第一个示例中,省略类型注释可能没问题。尽管在一种为加法和字符串连接重载 + 的语言中,很容易在您打算返回数字时意外编写返回字符串的代码,因此防止这种情况可能是有意义的。

在你的第二个例子中,我觉得它应该有一个类型注释。记住我的个人规则:

Every public interface should be explicitly annotated, unless the type is blindingly obvious both from the name and the implementation.

我觉得名为 getPosts 的函数实际上并没有获取帖子,而是获取帖子的 Observable 这一事实还不够明显。

关于typescript - 我应该在 TypeScript 中输入所有内容吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61134862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com