ошибка TS1316 Глобальный экспорт модулей может появляться только на верхнем уровне - PullRequest
0 голосов
/ 18 января 2019

Возникли проблемы при сборке старого машинописного проекта. Невозможно построить старый проект, к которому я возвращаюсь. Существует проблема с q при попытке сборки. Я предполагаю, что это моя версия tsc, но каждая пробная версия выдает ошибки.

В Интернете были некоторые предложения по изменению версии машинописного текста до версии 2.2, поскольку она по-разному обрабатывает набор текста, но ничего не привело к какому-либо прогрессу.

Я предоставил информацию об ошибке и версии. Также мой tsconfig.json. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Ошибки ($ tsc -v 2.1.5)

$ tsc -p ./
typings/modules/q/index.d.ts(10,1): error TS1316: Global module exports may only appear at top level.

Версия

nvm: 1.1.5
npm: 4.1.2
tsc: 2.1.5
node: 7.5.0

$ npm list --depth=0
+-- @types/q@1.5.1
`-- typescript@2.1.5

tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "module": "amd",
        "outDir": "static/js",
        "sourceMap": true,
        "strictNullChecks": true,
        "noImplicitAny": true
    },
    "files": [
        "typings/index.d.ts",
        "../common/types.d.ts"
    ],
    "include": [
        "src/**/*.ts"
    ]
}

EDIT

Ошибки, перечисленные в tsc v2.3.0, фактически были все еще 2.1.5. Я не установил typepscript глобально, поэтому он все еще использовал 2.1.5 вместо 2.3.0, когда я запускал команду tsc.

1 Ответ

0 голосов
/ 19 января 2019

Когда в файлах декларации появляются ошибки, это, как правило, указывает на то, что в файле декларации используется синтаксис, недоступный в вашей версии TypeScript.

В этом случае давайте взглянем на строки, сообщенные как ошибки.

64: then<U = T, V = never>(onFulfill?: ...
200: thenReject<U = T>(reason?: any): Promise<U>;

Указанные здесь ошибки указывают на знаки равенства в разделе аргументов типа. Это указывает на то, что аргументы типа по умолчанию не поддерживаются. Это на самом деле не имеет смысла, так как в TS2.3 была добавлена ​​поддержка аргументов типа по умолчанию . Я думаю, что у вас не было 2.3 установленного для этих ошибок, и версии были переключены ...

Имея это в виду, другие ошибки, скорее всего, связаны с несовместимостью старых (<2.1, если я правильно помню) файлов <code>typings и новых файлов @types. С типами, установленными в node_modules/@types/q, вам не нужно включать пользовательскую папку typings, поэтому вы сможете удалить typings/modules/q (фактически, всю папку typings), чтобы устранить другую ошибку.

Если это не решит вашу проблему, проект клонирования позволит намного легче понять, что не так.

...