Type Deklarationsreihenfolge in TypeScript
Ist TypeScript abhängig von der Reihenfolge der Typdeklarationen?
Das Ändern der Reihenfolge des Typs führt zu einem Fehler in Angular 2 (Beta.0), das (AFAIK) mit TypeScript selbst implementiert wird (aus diesem Grund erscheint mir dieser Fehler so seltsam und irrelevant):
angular2-polyfills.js:138 Error: Cannot read property 'prototype' of undefined(…)
Angenommen, wir haben eine Dateit1.ts
:
export class AuthResponse extends JsonResponse { }
export class JsonResponse {
public code: ResultCode;
}
export enum ResultCode { }
Wenn die App gestartet wird, wird auf der Clientseite der erwähnte Fehler angezeigt. Aber wenn wir die Reihenfolge der Deklarationen in dieser Datei umkehren, verschwindet der Fehle
Um diesen Fehler zu reproduzieren, benötigen wir fünf weitere Dateien:
t2.ts
:
import {AuthResponse, JsonResponse, ResultCode} from './t1'; // this order?
export class DummyAction {
doSomething() {
console.log('test, starting ...');
var v = new AuthResponse();
return v;
}
}
app.component.ts
:
import {Component, OnInit} from 'angular2/core';
import {DummyAction} from './components/t2';
@Component({
selector: 'root-app',
templateUrl: '/app/templates/app.html',
})
export class AppComponent implements OnInit {
constructor() {
var tester = new DummyAction();
// tester.runTest();
}
ngOnInit() { }
}
app.html
:
<h1>TEST</h1>
boot.ts
:
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
bootstrap(AppComponent, []);
Undindex.html
, das etwas größer ist, aber im Wesentlichen die Struktur von @ hindex.html
vom Tutorial auf eckig Webseite