Typescript Én fil per klasse


Jeg har nettopp startet med Typescript, bruker Visual Studio 2015, og kan ikke finne en måte å bruke klasser i separate filer på.

I en enkeltfil er det ikke noe 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 klassene flyttes til sine egne filer, vises ingen feil, men under kjøring får jeg:

0x800a1391 - JavaScript-kjøretidsfeil: 'MyGame' er udefinert

// 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 deler koden din inn i mange filer, må du sørge for at de alle lastes inn under kjøring.

For eksempel:

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

Merk at din app.js er sist (fordi den er avhengig av de andre og rekkefølgen betyr noe).

Du kan også be TypeScript om å gi deg en enkelt fil ved å bruke:

--out combined.js

Du kan da referere til den kombinerte filen på siden din, i stedet for mange individuelle filer - men du får fortsatt administrere applikasjonen din ved å dele den inn i mange filer under designetiden.

Relaterte artikler