角度コンポーネントでカスタムTypeScriptクラスを使用する方法がわからない

トーマス・マクスウェイン

TypeScriptクラスであるBoxが必要なコンポーネントGameBoardComponentがあります。私はもともと「classBox {}」のようにしようとしましたが、それができないと読んだので、「export class Box(){}」のようになりました。

import {GameBoardComponent} from './game-board/game-board.component';
import * as p5 from 'p5';
export class Box {
    x: number;
    y: number;
    width: number;
    height: number;
    board: GameBoardComponent;
    constructor(x: number,y: number, width:number) {
        this.width = width;
        this.height = width;
        this.x=1;
        this.y=1;

    }
    draw(canvas: p5): void {
        canvas.rect(this.x,this.y,this.width,this.height);
    };

}

私のゲームボードは次のようになります:

import { Component, OnInit } from '@angular/core';
import { Box } from '../Box';

import * as p5 from 'p5';



/** 
*@todo Game Board
*@body Complete the gameboard, possible integration with other smaller components ie a Tetris component or a Box component
*/
@Component({
  selector: 'app-game-board',
  template: `
    <p>
      game-board works!
    </p>
  `,
  styleUrls: ['./game-board.component.scss']
})
export class GameBoardComponent implements OnInit {
  height: number;
  width: number;
  canvas: p5;
  test: Box;
  constructor() { }

  ngOnInit() {
    this.height = 100;
    this.width = 20;
    this.test = new Box(1,1,this.canvas.width);


    const sketch = (s) => {



      s.preload = () => {
        // preload code
      }

      s.setup = () => {
        s.createCanvas(window.innerWidth/4, window.innerHeight*.8);
      };

      s.draw = () => {
        s.scale(1, -1);
        s.translate(0, -s.height);
        s.background(0);
        s.rect(100, 100, 100, 100);
        s.test.draw();
      };

      s.windowResized = () => {
        s.resizeCanvas(window.innerWidth/4, window.innerHeight*.8);
      };
    }

    this.canvas = new p5(sketch);

  }

}

私のapp.moduleは次のようになります:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {MatButtonModule} from '@angular/material/button';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { GameBoardComponent } from './game-board/game-board.component';
import { TetrisPieceComponent } from './tetris-piece/tetris-piece.component';
import { HoldBoxComponent } from './hold-box/hold-box.component';
import { ViewBoxComponent } from './view-box/view-box.component';
import { MainMenuComponent } from './main-menu/main-menu.component';
import { Box } from './Box';

@NgModule({
  declarations: [
    AppComponent,
    GameBoardComponent,
    TetrisPieceComponent,
    HoldBoxComponent,
    ViewBoxComponent,
    MainMenuComponent,
    Box
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    MatButtonModule
  ],
  providers: [

  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

また、コンパイルしようとすると、次のエラーが発生します。

Uncaught Error: Unexpected value 'Box' declared by the module 'AppModule'. Please add a @Pipe/@Directive/@Component annotation.

私はエラーを広範囲にグーグルで検索し、App.moduleの他の場所でBoxを宣言からプロバイダーに移動しようとしましたが、別のエラーが発生し、コンストラクターの種類を解決できません。だから多分それは私の問題ですか?とにかく、私は朝の大部分を角度コンポーネントで自分のtypescriptクラスを使用する正しい方法を理解しようとして過ごしましたが、うまくいくものは何も見つかりませんでした。

どんな助けでもいただければ幸いです。

ステップアップ

宣言する必要はありませんBox、あなたにはapp.module.tsそれがないモジュール、コンポーネント、ディレクティブまたはパイプであるように。したがって、Boxから削除するだけapp.module.tsです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムコンポーネントのAngularに双方向バインディングを適用する方法がわからない

分類Dev

VueJSで小道具としてコンポーネントを渡す際のカスタム要素エラーがわからない

分類Dev

コンポーネントからAngularサービス、カスタムクラスを初期化する方法は?

分類Dev

カスタムクラスコンポーネントのスタイルでテーマを使用する方法

分類Dev

エラーは、コンポーネントが定義されているファイルからコンポーネントをエクスポートするのを忘れたが、カスタムコンポーネントをエクスポートしていないことを示していました(React)

分類Dev

コンポーネントに適用されない角度スタイル(ホストセレクターを使用しているにもかかわらず)

分類Dev

反応コンポーネント全体でカスタムAPIクライアントを使用するための慣用的な方法は何ですか?

分類Dev

カスタムReactコンポーネントライブラリからコンポーネントをインポートして使用すると、不変の違反が発生します:無効なフック呼び出し

分類Dev

react.jsで同じクラス名を使用しているときに、cssスタイルがコンポーネントからリーク(他のコンポーネントに継承される)するのはなぜですか?

分類Dev

NPM経由で配布しながらReactコンポーネント(Redux、CSS)のカスタムアスペクトを管理する方法

分類Dev

カスタムコンポーネントクラスからredux-formに値を渡す方法は?

分類Dev

同じコンポーネントでカスタムコンポーネントを複数回使用する方法

分類Dev

vuetable-2コンポーネントを使用して不明なカスタム要素エラーが発生するのはなぜですか?

分類Dev

redux形式でカスタムコンポーネントを使用する方法は?

分類Dev

React with TypescriptのクラスコンポーネントでsetStateのように機能するカスタムフックを作成する方法

分類Dev

カスタムコンポーネントをCakephpMiddleWareクラスにインポートするにはどうすればよいですか?

分類Dev

コンポーネントのクラッシュで再試行する代わりに、ストームがスパウトからタプルを再生するのはなぜですか?

分類Dev

角度コンポーネントはカスタム要素(Webコンポーネントテクノロジーから)と同じですか?

分類Dev

WCFカスタムオラクルで使用可能なポーリングデータとポストポーリングステートメントの間でデータを失わないようにする方法

分類Dev

Reactコンポーネントでコンストラクターを使用するのはいつですか?

分類Dev

コンストラクターに引数を適用する方法がわからない[Haskell&CodeWorld API]

分類Dev

角度カスタム入力コンポーネントが更新されない

分類Dev

TypeScriptでReactHookを使用すると、「... React関数コンポーネントでもカスタムReactHook関数でもない」に直面する理由

分類Dev

Svelteコンポーネントから個別のカスタム要素をエクスポートする

分類Dev

角度2+でカスタムローディングボタンコンポーネントを作成するにはどうすればよいですか?

分類Dev

入力パラメータが無効になっているカスタムボタンコンポーネントのホストクリックを角度で防止

分類Dev

データが変更されない場合、Reactコンポーネントで状態を使用することは悪い習慣ですか?代わりに、クラスのプロパティを使用する必要がありますか?

分類Dev

コンポーネントがカスタムコンポーネントではないことをvuejsでどのように伝えるか(<menuitem>)

分類Dev

Angular2Typescriptコンポーネントコンストラクターからコードをリファクタリングする方法

Related 関連記事

  1. 1

    カスタムコンポーネントのAngularに双方向バインディングを適用する方法がわからない

  2. 2

    VueJSで小道具としてコンポーネントを渡す際のカスタム要素エラーがわからない

  3. 3

    コンポーネントからAngularサービス、カスタムクラスを初期化する方法は?

  4. 4

    カスタムクラスコンポーネントのスタイルでテーマを使用する方法

  5. 5

    エラーは、コンポーネントが定義されているファイルからコンポーネントをエクスポートするのを忘れたが、カスタムコンポーネントをエクスポートしていないことを示していました(React)

  6. 6

    コンポーネントに適用されない角度スタイル(ホストセレクターを使用しているにもかかわらず)

  7. 7

    反応コンポーネント全体でカスタムAPIクライアントを使用するための慣用的な方法は何ですか?

  8. 8

    カスタムReactコンポーネントライブラリからコンポーネントをインポートして使用すると、不変の違反が発生します:無効なフック呼び出し

  9. 9

    react.jsで同じクラス名を使用しているときに、cssスタイルがコンポーネントからリーク(他のコンポーネントに継承される)するのはなぜですか?

  10. 10

    NPM経由で配布しながらReactコンポーネント(Redux、CSS)のカスタムアスペクトを管理する方法

  11. 11

    カスタムコンポーネントクラスからredux-formに値を渡す方法は?

  12. 12

    同じコンポーネントでカスタムコンポーネントを複数回使用する方法

  13. 13

    vuetable-2コンポーネントを使用して不明なカスタム要素エラーが発生するのはなぜですか?

  14. 14

    redux形式でカスタムコンポーネントを使用する方法は?

  15. 15

    React with TypescriptのクラスコンポーネントでsetStateのように機能するカスタムフックを作成する方法

  16. 16

    カスタムコンポーネントをCakephpMiddleWareクラスにインポートするにはどうすればよいですか?

  17. 17

    コンポーネントのクラッシュで再試行する代わりに、ストームがスパウトからタプルを再生するのはなぜですか?

  18. 18

    角度コンポーネントはカスタム要素(Webコンポーネントテクノロジーから)と同じですか?

  19. 19

    WCFカスタムオラクルで使用可能なポーリングデータとポストポーリングステートメントの間でデータを失わないようにする方法

  20. 20

    Reactコンポーネントでコンストラクターを使用するのはいつですか?

  21. 21

    コンストラクターに引数を適用する方法がわからない[Haskell&CodeWorld API]

  22. 22

    角度カスタム入力コンポーネントが更新されない

  23. 23

    TypeScriptでReactHookを使用すると、「... React関数コンポーネントでもカスタムReactHook関数でもない」に直面する理由

  24. 24

    Svelteコンポーネントから個別のカスタム要素をエクスポートする

  25. 25

    角度2+でカスタムローディングボタンコンポーネントを作成するにはどうすればよいですか?

  26. 26

    入力パラメータが無効になっているカスタムボタンコンポーネントのホストクリックを角度で防止

  27. 27

    データが変更されない場合、Reactコンポーネントで状態を使用することは悪い習慣ですか?代わりに、クラスのプロパティを使用する必要がありますか?

  28. 28

    コンポーネントがカスタムコンポーネントではないことをvuejsでどのように伝えるか(<menuitem>)

  29. 29

    Angular2Typescriptコンポーネントコンストラクターからコードをリファクタリングする方法

ホットタグ

アーカイブ