Angular:导出类和公共类之间的区别?
Posted
技术标签:
【中文标题】Angular:导出类和公共类之间的区别?【英文标题】:Angular: Difference between Export and Public Class? 【发布时间】:2020-01-29 06:37:22 【问题描述】:在 Angular 中,导出类和公共类有什么区别?
“Angular 导入/导出用于使一个模块的内容可用于另一个模块。那么这与公共类有何不同?”
参考问题: What is the exact meaning of export keyword in Angular 2\TypeScript?
例子:
export class Product
constructor(
public id?: number,
public name?: string,
public category?: string,
public description?: string,
public price?: number)
【问题讨论】:
export 以便您可以在另一个类中导入,public 以便您可以从另一个类访问该类 公开某些内容并不会自动使其可供导入。您需要将其导出以使其可用于在其他文件中导入。这不是 Angular 的东西,它是 typescript/es6 的东西。 嗨@AlexanderStaroselsky 好的,请随意写作为答案,我可以发送积分,谢谢 嗨 @joyBlanks 看到上面的评论,谢谢 export 以便您可以在另一个类中导入,public 以便您可以从另一个类访问该类。即使您必须导入它才能访问它。如果即使在导入后也将其设为私有,您也无法访问它。阅读有关访问修饰符的更多信息 【参考方案1】:历史
ES6/ES2015(ECMA 脚本)在语言中引入了原生的模块系统。在 ES6 之前,javascript 应用程序使用 requirejs 之类的库来实现模块系统。
模块
类、函数、常量等可以从一个模块中导出,也可以导入到其他模块中。未导出的内容是模块内部的。
尽管 TypeScript 在 ES 2015 之前有类似的概念,但该语言采用 ES6 模块系统来保持一致性和标准。在这里阅读更多。 https://www.typescriptlang.org/docs/handbook/modules.html
没有模块,过去的应用程序使用“脚本”元素 仔细订购,以便首先声明某些内容,然后才使用 在接下来的几个文件中。还有一些在以前的脚本文件中声明的东西, 不会被新变量覆盖。
类
另一方面,类是一个面向对象的编程概念,它封装了状态(字段)和行为(函数)。访问修饰符控制字段在类实例上的可用方式。公共(默认)、私有(类内部)和受保护(可在类和派生类中访问)。更多在这里,https://www.typescriptlang.org/docs/handbook/classes.html#classes
总结
简而言之,从模块中导入类,创建实例,使用公共方法和属性。我们还可以导入函数、常量、枚举等。它们可能是模块的一部分。可能无法像类一样提供封装和抽象。
【讨论】:
以上是关于Angular:导出类和公共类之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章