Angular 角度:使类可用于整个模块

Angular 角度:使类可用于整个模块,angular,Angular,我是个新手。我有一个简单的类文件language.ts,如下所示: export class Language { constructor( public code: string, public libelle: string) {} } 我只有一个模块 如何使该类可用于整个模块 编辑-- 谢谢,我知道把它放在全球范围内并不是最好的做法。我需要在每个文件中导入它。 但如果我想拥有全局价值,比如: export class Language {

我是个新手。我有一个简单的类文件
language.ts
,如下所示:

export class Language {
    constructor(
        public code: string,
        public libelle: string) {}
}
我只有一个模块

如何使该类可用于整个模块

编辑--

谢谢,我知道把它放在全球范围内并不是最好的做法。我需要在每个文件中导入它。 但如果我想拥有全局价值,比如:

    export class Language {

        languages = [
            new Language("fr", "Français"),
            new Language("en", "Anglais")
          ];
        currentLanguage = this.languages[0];

        constructor(
            public code: string,
            public libelle: string) {}
}

如何访问组件中的这些值?

如果您只想在模块中使用该类,只需导入它,它就会可用

然而,“使其可用于整个模块”听起来像是“使其可用于整个应用程序”,如果是这样,请参见下文

将其添加到位于的app.module.ts的提供者数组中

src/app/app.module.ts 
首先,在该文件中导入类,如下所示

import { Language } from './language ';
接下来将其添加到Providers数组,如下所示:

providers: [
YourClass,
/**/
],

它只是一个类。只要在你想使用它的任何地方导入它。是的,但我想知道是否有办法避免在我想使用的组件的每个类中导入它it@marojbor使用JS/TS模块的全部目的是避免这种可怕的全局类型,它们会导致冲突,并且不能有效地绑定自动添加必要的导入。如果手动键入导入,则需要改进工具。如果希望每个组件都可以使用该工具,请参阅我的答案。@marojbor您的代码没有多大意义,因为调用其构造函数会递归地调用自身。但是如果希望某个值在全局范围内可用,则只需导出一个
const someValue=…
,并在任何需要的地方导入它,或者使用包含此值的Angular服务并将其注入到每个需要它的组件中。这毫无意义。OP发布的类不是一个服务。它与模块提供程序无关。OP说让它对整个模块可用,这听起来像整个APPYes。只要在任何你想使用它的地方导入这个类,你就可以做到这一点。