Наше веб-приложение (TypeScript 2.1.4) предназначает модуль amd и использует ///<amd-dependency />
для загрузки шаблона с помощью требований. Сегодня мы используем с успехом следующего синтаксиса для загрузки HTML строки в TPL переменный:amd-dependency устарела. Как использовать модуль импорта «
/// <amd-dependency path="text!tpl/components/header/header.view.html" name="tpl"/>
declare var tpl: string;
Отныне this directive is deprecated:
< /// драмы-зависимость />
это директива устарела. Использовать import "moduleName"; .
Чтобы заменить тройной директиву слэш мы использовали дикий модуль карты в local.d.ts файле:
declare module "text!*" {
var _: string;
export default _;
}
и заменить директиву с:
import tpl from "text!tpl/components/header/header.view.html";
компиляция с tsc отлично, но загрузка шаблона не удалась. Глядя на JS, компиляция производит:
define([text!tpl/components/header/header.view.html, ...],function(header_view_html_1, ...) method
, как ожидалось, но затем использует header_view_html_1. по умолчанию в модуле.
Отладка js-файла, шаблон находится в переменной header_view_html_1
, но не в свойстве header_view_html_1.**default**
, которое не определено.
Почему машинописный шрифт создает это свойство по умолчанию? Как его избежать и сохранить header_view_html_1?
Edit: Я последовал за наставлениями из typescriptlang модулей Wildcard module declarations
declare module "json!*" {
const value: any;
export default value;
}
import data from "json!http://example.com/data.json";
Я уже пробовал 'импорт * в tpl из «text! tpl/components/header/header.view.html» ;, но он выдает ошибку компиляции: ошибка TS2345: аргумент типа «typeof» text! * «'не присваивается параметру типа' string ' – NicoD