Почему Typescript игнорирует мой tsconfig.json внутри кода Visual Studio?

у меня такая настройка проекта

project/
|
+---src/
|   |
|   +---app/
|       |
|       sample.ts
|
+---typings/
+---tsconfig.json

и вот мой tsconfig.json

{
    "compilerOptions": {
        "rootDir": "src",
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": true,
        "sourceMap": true,
        "noImplicitAny": false,
        "outDir": "dist"
    },
    "exclude": [
        "node_modules",
        "src/assets",
        "src/lib"
    ]
}

мне интересно, почему VSC указывает на такие ошибки, как

Error Highlighting in VSC

когда вообще нет ошибок ("experimentalDecorators": true находится в tsconfig.json), и приложение transpiles просто отлично? И это не только декораторы, Promise и подобное также подсвечивается (я убедился, что tsconfig.json в папке typings и я получил typings для es6-shim установить).

не уверен, что это имеет значение, но я на typescript@2.0.0-dev.20160707 на данный момент.

2 ответов


Короткий Ответ:

VS код игнорирует ваш tsconfig.json когда вы используете более новую версию TypeScript, чем та, которую VS Code предоставляет из коробки.

вы используете TypeScript 2.0.0-dev.20160707, так что, вероятно, это то, что происходит.

как использовать более новую версию TypeScript в VS Code

первый, установите TypeScript в свой node_modules. Выберите стабильный или ночной.

npm install typescript --save-dev // stable
npm install typescript@next --save-dev // nightly

второй добавить равнодействующая lib относительный путь к вашей settings.json. То есть открыть settings.json в VS Code через File > Settings > User Settings и добавьте следующее свойство.

{
  "typescript.tsdk": "node_modules/typescript/lib"
}

Примечание, если вы установили TypeScript глобально (-g) вместо , затем настройте ваш typescript.tsdk соответствующее место.

третий, убедитесь, что у вас есть действительный tsconfig.json. Вот образец.

{
    "compileOnSave": false,
    "compilerOptions": {
        "sourceMap": true,
        "target": "es5",
        "experimentalDecorators": true,
        "noImplicitAny": false
    },
    "exclude": [
        "node_modules"
    ],
    "filesGlob": [
        "src/**/*.ts",
        "test/**/*.ts",
        "typings/index.d.ts"
    ]
}

документация

VS код поставляется с последней стабильной версией TypeScript в коробке. если вы хотите использовать более новую версию TypeScript, вы можете определить typescript.настройка tsdk (File > Preferences > User / Workspace Settings), указывающая на каталог, содержащий Tsserver TypeScript.js и соответствующий lib.*.d.TS файлы. Путь к каталогу может быть абсолютным или относительным к рабочей области справочник. Используя относительный путь, вы можете легко поделиться этим параметром рабочей области с командой и использовать последнюю версию TypeScript (npm install typescript@next). См. это сообщение в блоге для получения более подробной информации о том, как установить ночные сборки TypeScript. (курсив добавлен).

см. также: https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/


найдите папку typescript был установлен с npm в моем случае это было:

C:\Users\<username>\AppData\Roaming\npm\node_modules\typescript\lib

среди других файлов должно быть:

lib.d.ts
tsserver.js

внутри. Теперь откройте Настройки:

File -> Preferences -> User Settings/Workspace Settings

это должно открыть файл settings.json добавить:

{
    "typescript.tsdk": "C:\Users\<username>\AppData\Roaming\npm\node_modules\typescript\lib"
}

(обратите внимание на двойные косые черты \), сохранить и-важно-перезапустить код Visual Studio. Наслаждаться.