WebStorm намекает мне на ошибку TS (TS2705), когда я использую jest (ts-jest async / await test) - PullRequest
0 голосов
/ 07 июня 2018

Пакеты: jest ts-jest @ types / jest

IDE: WebStorm

Когда я использую асинхронный тест jest , возникает ошибка TS (TS2705), котораяЯ не могу решить.Но эта подсказка не влияет на команду jest.

image

При использовании наименьшего теста возникает та же ошибка:

import {} from 'jest';

test('async test',async ()=>{

});

jest.config.js

module.exports =  {
    "transform": {
        "^.+\\.tsx?$": "ts-jest"
    },
    "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
        "moduleFileExtensions": [
        "ts",
        "tsx",
        "js",
        "jsx",
        "json",
        "node"
    ],
    globals:{
        'ts-jest':{
            // I have the same behavior when I delete this line
            "tsConfigFile": "./tsconfig.json"
        }
    }
};

tsconfig.json

{
  "compilerOptions": {
    "types": [
    "node"
    ],
    "module": "commonjs",
    "target": "es2017",
    "lib": [
      "es2015",
      "es2016",
      "esnext.asynciterable"
  ],
    "noImplicitAny": false,
    "noImplicitThis": false,
    "inlineSourceMap": true,


    "rootDirs": ["."],
    "outDir":"./dist",
    "experimentalDecorators":true,
    "emitDecoratorMetadata": true,
    "moduleResolution": "node",
    "watch":false
  },
  "include":[
    "./app/**/*.ts",
    "./config/**/*.ts",
    "./app.ts",
    "./preload.ts"
  ],
  "exclude": [
    "./dist/**/*.*"
  ]
}

Как разрешить эту подсказку об ошибке IDE?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Если служба TypeScript включена в Настройки |Языки и рамки |TypeScript , он использует ближайший tsconfig.json текущий файл, включенный в него, сканируя папки из файла dir до корня проекта.Если не найдено ни одного tsconfig.*.json файла, в который включен текущий файл, для связывания файлов используется конфигурация по умолчанию.Обратите внимание, что раздел « include » в корневом каталоге tsconfig.json:

"include":[
    "./app/**/*.ts",
    "./config/**/*.ts",
    "./app.ts",
    "./preload.ts"
  ],

«tests», где находятся ваши spec-файлы, не включен в ваш проект TypeScript.См. Документацию tsconfig.json :

Если оба параметра "files" и "include" не указаны, компилятор по умолчанию включает в себя весь TypeScript (.ts, .d.ts).и .tsx) файлы в каталоге и подкаталогах, за исключением тех, которые были исключены с помощью свойства "exclude".Если указаны свойства «files» или «include», компилятор вместо этого включит объединение файлов, включенных в эти два свойства.

Таким образом, не подходит tsconfig.json файл для ваших файлов спецификаций.найдено (вы, должно быть, увидели предупреждение «корень не найден tsconfig.json» в консоли typeScript).В результате используются настройки компилятора по умолчанию, которые не включают библиотеку "es2015" - таким образом, ошибка.Включение тестовых файлов в вашу корневую конфигурацию или добавление отдельного tsconfig.json с соответствующими настройками в каталог «tests» должно решить проблему.

0 голосов
/ 08 июня 2018

Проблема была решена.

Но не понимаю принцип.

enter image description here

Я добавил файл tsconfg.jsonв каталоге tests и решил его.

...