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.
