Angular:导出和PublicClass的区别?

Angular: Difference between Export and Public Class?

在 Angular 中,导出 class 和 public class 之间有什么区别?

"Angular imports/exports are used to make the content of one module available to be used in another module. So how is this different from a public class?"

参考问题:

示例:

export class Product {
constructor(
public id?: number,
public name?: string,
public category?: string,
public description?: string,
public price?: number) { }
}

历史

ES6/ES2015(ECMA 脚本)在语言中引入了模块系统。在 ES6 之前,JavaScript 应用程序使用像 requirejs 这样的库来实现模块系统。

模块

类、函数、常量等可以从一个模块中导出,并导入到其他模块中。未导出的内容是模块内部的内容。

尽管 TypeScript 在 ES 2015 之前有类似的概念,但该语言采用 ES6 模块系统以保持一致性和标准。在这里阅读更多。 https://www.typescriptlang.org/docs/handbook/modules.html

without modules, yesteryear applications used "script" elements carefully ordered, so that something is declared first, only then used in next few files. Also something declared in a previous script file, is not overridden with a new variable.

另一方面,class 是一种面向对象的编程概念,它封装了状态(字段)和行为(函数)。访问修饰符控制字段在 class 实例上的可用方式。 Public(默认)、私有(class 内部)和受保护(在 class 和派生的 classes 中可访问)。更多信息,https://www.typescriptlang.org/docs/handbook/classes.html#classes

总结

简而言之, 从模块中导入 classes,创建实例,使用 public 方法和属性。我们还可以导入函数、常量、枚举等。它们可能是模块的一部分。可能无法像 classes.

那样提供封装和抽象