Typescrit:命名空间或静态类

时间:2018-02-07 09:51:44

标签: typescript

我有两部分代码可以做同样的事情。

但对你来说最好的是什么?使用命名空间还是静态类?

namespace MyMath {  
  const PI: number = 3.14;

  export function calculateCircumference(diameter: number): number {
    return diameter * PI;     
  }
  export function calculateRectangle(width: number, length: number): number {
    return width * length;     
  } 
}

class MyMathClass {  
  PI: number = 3.14;

  static calculateCircumference(diameter: number): number {  
    return diameter * PI;     
  }

  static calculateRectangle(width: number, length: number): number {
    return width * length;     
  } 
}

让我知道你眼中最好的东西! 感谢' S

1 个答案:

答案 0 :(得分:2)

好吧,正如你可以在这里阅读的Difference between classes and namespaces in typescript,他们在实现目标方面非常相似。

就我个人而言,我主要使用课程。即使它们只包含静态方法,这种方法也很少见。你可以自由地添加新的逻辑,现在有一个所谓的类的实例可能是有意义的。

我认为命名空间只是用于分组内容。因此,在一个命名空间中对多个类,接口等进行分组。如果您计划其他开发人员使用您的东西,尤其重要。然后名称空间对他们来说非常方便,可以区分自己的代码和导入的代码。