Порядок объявления типов в TypeScript
Чувствителен ли TypeScript к порядку объявлений типов?
Изменение порядка типов вызывает ошибку внутри Angular 2 (бета.0), которая (AFAIK) реализована с использованием самого TypeScript (поэтому эта ошибка кажется мне такой странной и неактуальной):
angular2-polyfills.js:138 Error: Cannot read property 'prototype' of undefined(…)
Предположим, у нас есть файлt1.ts
:
export class AuthResponse extends JsonResponse { }
export class JsonResponse {
public code: ResultCode;
}
export enum ResultCode { }
При запуске приложения мы видим указанную ошибку на стороне клиента. Но если мы изменим порядок объявлений в этом файле, ошибка исчезнет (просто для записи, сейчас я двигаюсь вперед, помня об этом, и это работает).
Чтобы воспроизвести эту ошибку, нам нужно еще пять файлов:
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, []);
А такжеindex.html
который немного больше, но по существу, имеет структуруindex.html
из учебника наугловая Веб-сайт.