【问题标题】:TypeScript static members vs namespace with class nameTypeScript 静态成员与具有类名的命名空间
【发布时间】:2018-04-16 19:25:42
【问题描述】:

在 TypeScript 中,我一直在将非实例变量从我的类中分离出来,并放到一个与类同名的命名空间中。例如:

class Person
{
    age: number;

    constructor(age: number)
    {
        this.age = age;
    }
}

namespace Person
{
    export let numberOfFingers: number = 10;
}

export default Person;

与此相反:

class Person
{
    static numberOfFingers: number = 10;

    age: number;

    constructor(age: number)
    {
        this.age = age;
    }
}

export default Person;

这两种方法有什么好处吗?

【问题讨论】:

    标签: class typescript module namespaces


    【解决方案1】:

    就类型检查和代码生成而言,这两种方法产生完全相同的结果。我可以提供两个不太强烈的论点来支持静态成员:

    • 这是最明显的事情,不需要语言的高级部分知识 (declaration merging) 即可理解代码

    • 1234563一个函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-27
      • 2013-03-10
      • 2011-12-09
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 2015-03-14
      • 2011-05-29
      相关资源
      最近更新 更多