TypeScript с Mocha игнорирует склонения typeRoots - PullRequest
0 голосов
/ 05 февраля 2019

Я расширяю Window интерфейс с полем dataLayer:

// ./src/@types/Window.d.ts

interface Window {
  dataLayer: {
    push: (...args) => void
  }
}

Мой тестовый файл содержит:

// ./src/__tests__/index.test.ts

describe('window', () => {
  it("window object should not be null", () => {
    window.dataLayer.push('hello') // just for demonstrating the type error
    expect(window).not.eq(null)
  });
})

Когда я запускаю mocha с этой командой из package.json, Я получаю ошибку типа компиляции машинописного текста о dataLayer:

mocha --timeout 3000 -r ts-node/register src/**/*.test.ts

Вывод:

.../node_modules/ts-node/src/index.ts:228
    return new TSError(diagnosticText,diagnosticCodes)
           ^
TSError: ⨯ Unable to compile TypeScript:
sr/__tests__/index.test.ts(26,12): error TS2339: Property'dataLayer' does not exist on type 'Window'.

My ./tsconfig.json содержит:

{
  "compilerOptions": {
    "outDir": "./dist",
    "sourceMap": true,
    "noImplicitAny": false,
    "module": "commonjs",
    "target": "es6",
    "jsx": "react",
    "declaration": true,
    "allowJs": false,
    "allowSyntheticDefaultImports": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "downlevelIteration": true,
    "lib": ["es5", "es2015", "dom", "scripthost"], 
    "typeRoots": ["node_modules/@types", "src/@types"]
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

Кажется, что машинопись просто игнорирует объявление typeRoots в моем файле tsconfig.

Как правильно использовать мои собственные замедления типов с TypeScript и Mocha?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...