Angular 服务与导出

Yoa*_*gen 12 angular

我有一组简单的工具方法,没有任何状态可以在应用程序中共享,不需要是单例,也没有任何注入的服务。

使用可注射服务是否有任何优势:

@Injectable()
export class DateService { 
  public convertStringToDate(input: string): Date {
    …
  }

  public convertDateToString(date: Date): string {
   …
  }
  …
}
Run Code Online (Sandbox Code Playgroud)

与一组简单的导出/导入函数(或基本 JS 模块)?

export function convertStringToDate(input: string): Date {
    …
}

export function convertDateToString(date: Date): string {
   …
}

…
Run Code Online (Sandbox Code Playgroud)

我正在开发一个混合两种方法的应用程序,我对彼此的优势感到困惑。

a b*_*ver 13

如果服务没有任何状态,则无需创建该服务。

导出函数的优点是,如果未使用其中一个函数,则可以在构建过程中删除代码。

如果您的应用程序有多个代码包并且它们被延迟加载,并且您在不同的包中使用不同的函数,那么这些函数将被这些包延迟加载。

如果您确信您的函数将始终独立使用,那么我将采用第二种方法。例如,RxJS 由于我陈述的原因转向了函数方法。

使用服务的一个论据是测试。如有必要,您可以在测试期间轻松注入虚假服务或代理。但我想这对于转换函数来说几乎没有必要。