TypeScript - модуль undefined во время выполнения
Я не понимаю, что я делаю неправильно. Я создал проект TypeScript в VS2012 и создал файл с именем "Vector.ts" в подкаталоге "Физика":
// Module
module Physics {
// Class
export class Vector {
constructor(public x: number) { }
}
}
Кроме того, у меня есть следующий файл app.ts:
/// <reference path="Physics/Vector.ts" />
window.onload = () => {
var vector = new Physics.Vector(6);
};
Проект успешно скомпилирован, но когда я его запускаю, я получаю следующее исключение:
0x800a1391 - Ошибка выполнения JavaScript: "Физика" undefined
Я не понимаю, что я делаю неправильно...
Спасибо.
Ответы
Ответ 1
Если вы используете модули стиля AMD с загрузчиком модуля, например Require.Js, вам нужна инструкция import. См. Стив принял ответ здесь: fooobar.com/questions/486699/... Ваш код будет выглядеть примерно так:
import Physics = module("Physics/Vector");
var vector = new Physics.Vector(6);
... и вам это не понадобится: /// <reference path="Physics/Vector.ts" />
Если вы не используете загрузчик модуля, вам просто нужно убедиться, что вы добавили выходной файл Vector.js
где-то на странице html и убедитесь, что он загружается до вашего файла приложения. В этом случае вы используете /// <reference path="Physics/Vector.ts" />
, чтобы сообщить TS, где можно найти ваш модуль для intellisense и т.д.
Ответ 2
Просто для полноты, если вы используете System
, вы должны использовать import
function
:
System.import("Physics/Vector");
Если вы делаете это для Angular 2
, тогда вы захотите сделать это до своего bootstrap
import