TypeScript 构造函数中的私有变量声明以诱导 DI

Posted

技术标签:

【中文标题】TypeScript 构造函数中的私有变量声明以诱导 DI【英文标题】:private variable declaration in TypeScript constructor to induce DI 【发布时间】:2017-11-13 01:50:42 【问题描述】:

为了在 Angular 2 中使用 TypeScript 引入依赖注入,我们使用如下代码:

constructor(private _service : SampleService)

我想知道private关键字在此处变量声明中的重要性。如果我们不将服务声明为private,它会影响吗?

谢谢

【问题讨论】:

您应该查看访问修饰符的作用。 typescriptlang.org/docs/handbook/… 【参考方案1】:

constructor(private _service : SampleService) 是注入您希望在组件中使用的服务的推荐方式。

如果你不使用private,你将不得不编写更多的代码来访问构造函数之外的注入服务,如下所示:

class CompClass 
  private _service: SampleService;
  constructor(service : SampleService) 
    this._service = service;
  

  doSomething() : void 
    this._service.makeServiceCall();
  

【讨论】:

以上是关于TypeScript 构造函数中的私有变量声明以诱导 DI的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有接口的 Typescript 中声明公共和私有变量?

C++ 类 - 派生类中的构造函数声明

js面向对象

为啥我可以在复制构造函数中访问私有变量?

OpenMP 性能影响:私有指令与在构造内部声明变量

声明构造函数私有和 =delete 有啥区别?