【问题标题】:Do we need to declare data type for a string url in angular service我们是否需要在角度服务中声明字符串 url 的数据类型
【发布时间】:2018-07-24 19:00:04
【问题描述】:

我声明了一个私有变量并将其分配给一个字符串。我必须声明它的数据类型吗?

private pageUrl = '公司/'

private pageUrl: string = 'company/'

上面的哪个代码是正确的?如果我使用后一个代码,tslint 会显示错误。

【问题讨论】:

  • 两者在技术上都是正确的,但第二个是多余的,因为类型是推断出来的,所以你应该更喜欢第一个
  • @user184994 是正确的 - 您提供的第一个示例是首选,因为它使您的代码不那么冗长 - 请参阅:palantir.github.io/tslint/rules/no-inferrable-types
  • 这是一个偏好问题。有些项目的约定是显式声明类型,即使它们是推断出来的,例如您的第二个示例。我个人会选择第一个。

标签: javascript angular angular5


【解决方案1】:

private pageUrl = 'company/';

通过这种方式,您可以将 pageUrl 的类型显式声明为字符串,因此初始化值将被限制为字符串,这是一种很好的做法。

private pageUrl = 'company/'

在这种情况下,typescript 不会限制您在初始化 pageUrl 后分配给 pageUrl 的值的类型,typescript 会执行称为 type inference 的操作来确定 pageUrl 的类型.

Type Inference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    相关资源
    最近更新 更多