-1

モジュールに含めたいクラスがいくつかあるので、それは別のパッケージだったので、モジュールをインポートして、そこからそれらのクラスを使用できます。以下に小さな例を示します。

human.ts (私のクラス ファイル)

export class Human {

  private numOfLegs: Number;

  constructor() {
    this.numOfLegs = 2;
  }
}

test.module.ts (私のモジュール ファイル)

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { Human } from './human';

@NgModule({
  imports: [CommonModule],
  declarations: [
    Human
  ],
  providers: [],
  exports: [Human]
})
export class TestModule {}

コンポーネントで Human クラスをインスタンス化するにはどうすればよいですか? 私は両方を試しました:

import { TestModule } from './test.module';

import { Human } from './test.module';

しかし、もしそうなら、私はnew Human()まだ得ますcannot find name Human

4

3 に答える 3

3

Angular モジュールと ES6 / TypeScript / Node モジュールは異なります。Angular モジュールは、コンポーネント、サービス、およびディレクティブのコレクションです。一方、ES6 モジュールはほとんどの場合クラスで構成されています。

Angular 以外の他のクラスに依存する NgModule を再利用したい場合は、それらを ES6 モジュールとしてエクスポートし、他の場所で使用できます。export.ts または index.ts のようなファイルを用意し、そこに次の export ステートメントを配置します -

export { TestModule } from './test.module';
export { Human } from './human';

NgModule をどこかで使用したい場合は、次のようなコマンドでインポートします -

import { TestModule } from '../lib/export'; 
于 2017-09-08T15:04:26.193 に答える