Я искал простой способ создания наиболее простого примера проекта Visual Studio 2012 TypeScript, использующего RequireJS, jQuery и KnockoutJS. Существует несколько примеров, но для меня, где сложнее, чем я хотел, я решил создать практическое руководство и разместил его здесь для публичного изучения. Я ответил на свой вопрос как упражнение по обмену знаниями в стиле Q &.
Для тех, кто незнакомо, вот краткий анализ включенных компонентов...
TypeScript - расширение Visual Studio, которое позволяет создавать сценарии .TS файла с помощью языка, который является надмножеством JavaScript. Это дает возможность определить тип данных, связанный с методами и переменными, что в противном случае отсутствует в JavaScript. Таким образом, проверка времени компиляции может обеспечить правильное использование в попытке уменьшить конфликты во время выполнения. При создании проекта Visual Studio расширение Visual Studio будет компилировать script в фактический JavaScript. Таким образом, это расширение поставляется с собственным компилятором - tsc.exe. Ожидается, что результирующие файлы JavaScript будут развернуты для производства, а не файлы исходного кода .ts.
jQuery - структура JavaScript для обхода и манипулирования документами HTML, обработки событий, анимации и взаимодействия Ajax.
RequireJS - Загрузчик зависимостей. Иногда ссылки на JavaScript могут сходить с ума. Это пытается помочь в решении этих проблем. Мой пример показывает, что, хотя многие файлы JavaScript используются, HTML ссылается только на один - корневой файл JavaScript, который загружает другие.
KnockoutJS - привязка интерфейса, используя шаблон MVVM. Представления HTML относятся к переменным и методам в модели представлений. Модель представления является объектом JavaScript (файл JavaScript, скорее всего, является результатом компиляции файла .ts - см. TypeScript выше).
DefinitelyTyped - также включены два пакета DefinitelyTyped NuGet. Поскольку TypeScript пытается проверить использование типа данных, он выполняет проверку, чтобы убедиться, что она знает обо всех ссылках. JavaScript немного более свободен. Чтобы удовлетворить TypeScript (при обращении к внешним объектам JavaScript), нам нужен способ описания (до TypeScript) объектов, которые мы ожидаем использовать. Эти Определенные скрипты предоставляют это определение. Они не обеспечивают никакой функциональности, просто ясности компилятору TypeScript, поэтому он может выполнять эти проверки.
В приведенном ниже примере вы увидите
/// <reference path="../Scripts/typings/requirejs/require.d.ts" />
Вот как компилятор TypeScript будет включать файл определений DefinitelyTyped requirejs. Организация, создающая эти скрипты DefinitelyTyped, создала обширную коллекцию. Здесь мы говорим только о двух - KnockoutJS и RequireJS (ну, так как это область этого урока)