Typescript En Fil Per Klass


Jag har precis börjat med Typescript, använder Visual Studio 2015, och kan inte hitta ett sätt att använda klasser i separata filer.

I en enda fil är det inget problem:

module someModule {
    export class TitleScreenState extends Phaser.State {
        game: Phaser.Game;
        constructor() {
            super();
        }
       //some code here
    }

    class GameRunningState extends Phaser.State {
        constructor() {
            super();
       //some code here
    }

    class SimpleGame {
        game: Phaser.Game;

         //some code here
        }

    }
}

    window.onload = () => {
        var game = new MyGame.Game();
    };

Men när klasserna flyttas till sina egna filer visas inga fel, men vid körning får jag:

0x800a1391 - JavaScript-körtidsfel: 'MyGame' är odefinierad

// app.ts

/// <reference path='Game.ts'/>
/// <reference path='StateTitleScreen.ts'/>
/// <reference path='StateGameRunning.ts'/>


    window.onload = () => {
        var game = new MyGame.Game();
    };


//----------------------------------------
// Game.s

module MyGame {
    export class Game {
    // some code here
}
  

//-----------------------------------------
// StateTitleScreen.ts
  
module MyGame {
    export class StateTitleScreen {
    // some code here
}
  
//-----------------------------------------
// StateGameRunning.ts
  
module MyGame {
    export class StateGameRunning {
    // some code here
}

Svar #1

När du delar upp din kod i många filer behöver du se till att de alla laddas vid körning.

Till exempel:

<script src="Game.js"></script>
<script src="StateTitleScreen.js"></script>
<script src="StateGameRunning.js"></script>
<script src="app.js"></script>

Observera att din app.js är sist (eftersom den beror på de andra och ordningen är viktig).

Du kan också be TypeScript att förse dig med en enda fil med:

--out combined.js

Du kan sedan referera till den kombinerade filen på din sida, istället för många enskilda filer - men du kan fortfarande hantera din applikation genom att dela upp den i många filer vid designtid.

Relaterade artiklar