类是有用的

以下结构在应用中很常见:

  1. function foo() {
  2. let someProperty;
  3. // 一些其他的初始化代码
  4. function someMethod() {
  5. // 用 someProperty 做一些事情
  6. // 可能有其他属性
  7. }
  8. // 可能有其他的方法
  9. return {
  10. someMethod
  11. // 可能有其他方法
  12. };
  13. }

它被称为模块模式(利用 JavaScript 的闭包)。

如果你使用文件模块(你确实应该将全局变量视为错误),文件中的代码与示例一样,都不是全局变量。

然而,开发者有时会写以下类似代码:

  1. let someProperty;
  2. function foo() {
  3. // 一些初始化代码
  4. }
  5. foo();
  6. someProperty = 123; // 其他初始化代码
  7. // 一些其它未导出
  8. // later
  9. export function someMethod() {}

尽管我并不是一个特别喜欢使用继承的人,但是我确实发现让开发者使用类,可以在一定程度上更好的组织他们的代码,例如:

  1. class Foo {
  2. public someProperty;
  3. constructor() {
  4. // 一些初始化内容
  5. }
  6. public someMethod() {
  7. // ..code
  8. }
  9. public someUtility() {
  10. // .. code
  11. }
  12. }
  13. export = new Foo();

这并不仅仅有利于开发者,在创建基于类的更出色可视化工具中,它更常见。并且,这有利于项目的理解和维护。

TIP

在浅层次的结构中,如果它们能够提供明显的重复使用和减少模版的好处,那么在这个观点里,我并没有错误。

原文: https://jkchao.github.io/typescript-book-chinese/tips/classAreUseful.html