Итак, код прост:
call.json
{"SERVER":{
"requests":{
"one":"1"
}
} }
file.ts
import json = require('../static/calls.json');
console.log(json.SERVER);
сгенерированный javascript правильный, и при запуске js-сервера узла консольный журнал json.SERVER печатает '{requests: {one:' 1 '}}', как и должно быть.
Однако компилятор машинописного текста (commonjs) почему-то не особо любит эту ситуацию и выдает: «Не удается найти модуль '../static/calls.json'».
Конечно, я пробовал написать файл .d.ts, например:
declare module '../static/calls.json'{
var exp:any;
export = exp;
}
это тогда, очевидно, выдает: «Объявление внешнего модуля не может указывать относительное имя модуля».
Я также пробовал разные варианты, например:
declare module 'calls.json' {
import * as json from '/private/static/calls.json';
export = json;
}
а затем требуя:
import json = require('calls.json');
Ни один из них не работает должным образом и имеет свои небольшие ошибки компилятора :)
Я хочу использовать внешний файл .json, потому что я использую commonjs serveride и amd clientide, и мне нужен один файл для загрузки констант.