Я использую ts c Version 4.0.0-dev.20200514.
Я не понимаю грамматические / производственные правила машинописного текста spe c в сочетании с ошибками моего ts c.
В качестве примера у меня есть два файла: src / index.ts и src / foo.d.ts. В обоих файлах у меня нет операторов импорта или экспорта, поскольку я хочу, чтобы все объявления находились в глобальном пространстве имен. Согласно файлу spe c оба файла являются сценариями, при этом index.ts является сценарием реализации, а foo.d.ts - сценарием объявления. Содержимое моих файлов:
$ cat index.ts
console.log(lala.lol);
$ cat foo.d.ts
namespace lala {
var lol = 10;
}
Компилятор Typescript теперь жалуется, что «Объявления верхнего уровня в файлах d.ts должны начинаться с модификатора 'declare' или 'export'. Ts (1046) "
Согласно spe c (https://github.com/Microsoft/TypeScript/blob/376534981220fbbfee39ae97299aafe0d9c473ce/doc/spec.md#A) У меня есть следующая продукция: DeclarationScript => DeclarationScriptElements => DeclarationElement => NamespaceDeclaration => 'namespace' IdentifierPath {NamespaceBody} => 'namespace' 'lala' {NamespaceBody} = *> 'namespace' 'lala' 'var' 'lol' '=' '10' ';'
Он также говорит мне, что «Инициализаторы не разрешены в окружающих контекстах. Ts (1039)», хотя я не использовал слово «declare», и согласно spe c каждое AmbientDeclaration начинается с 'объявить'.
Так что теперь я не знаю, где мое недоразумение.