TypeScript 中的私有方法和私有属性

阅读时长 3 分钟读完

在 TypeScript 中,我们可以定义私有方法和私有属性,以实现封装和内部实现的隐藏。这样可以使代码变得更加模块化、可维护性更好,也可以防止一些意外的错误。

定义私有方法和私有属性

要定义私有方法和私有属性,需要在它们的名称前面加上下划线 _ 和一个访问修饰符 private,如下所示:

-- -------------------- ---- -------
----- ------ -
  ------- ------ -------

  ----------------- ------- -
    ---------- - -----
  -

  ------- ----------- -
    ------------------- -- ---- -- -----------------
  -
-
展开代码

在这个例子中,_name_sayHello 都是私有的成员,只能在 Person 类内部访问。

访问私有方法和私有属性

在 TypeScript 中,私有方法和私有属性只能在定义它们的类中访问:

在编译时会报错,因为 person 对象无法访问 Person 类的私有成员。

学习意义和指导意义

私有方法和私有属性可以增强 TypeScript 中的封装能力。它们隐藏了类的内部实现细节,减少了外部代码与内部实现的耦合度,使得代码具有更好的灵敏性和可维护性。

同时,私有成员也可以保护类内部,防止外部程序员通过直接访问私有成员来破坏类的整体结构和功能。当对类的内部实现进行调整时,私有成员可以减轻修改造成的影响和风险。

但需要注意的是,私有成员并不是解决所有问题的银弹,需要权衡其优缺点来使用。过多的私有成员可能会使代码变得难以理解和维护,建议在必要的情况下使用。

示例代码

下面是一个具有私有方法和私有属性的 Animal 类的示例代码:

-- -------------------- ---- -------
----- ------ -
  ------- ------ -------
  ------- ------ -------

  ----------------- ------- ----- ------- -
    ---------- - -----
    ---------- - -----
  -

  ------- ---------- ------- -
    -------------------------- --------------- -- ------ -----------
  -

  ------ --- ------ -
    ------ -----------
  -

  ------ --- ------ -
    ------ -----------
  -

  ------ ---------- ------- -
    ----------------
  -
-

----- --- - --- --------------- -------
----------------------  -- -- -------
----------------------  -- -- -----
-----------------  -- -- ------ ----- -- ------ ------
展开代码

Animal 类中,_name_kind 是私有属性,只能在类内部访问;_eat 是私有方法,也只能在类内部调用。外部程序员无法直接访问这些私有成员,但可以通过公共成员 namekind 获取这些私有属性的值,通过公共方法 feed 来调用私有方法 _eat

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b80c6a306f20b3a657e508

纠错
反馈

纠错反馈