Файлы объявлений Typescript ESLint - PullRequest
0 голосов
/ 09 июля 2020

Я немного погуглил, но ничего не могу найти по этому поводу, может быть, потому, что я не совсем уверен, что вызывает проблему.

Я хотел установить глобальное значение для node.js глобальный объект. Простая строка

global.appRoot = path.resolve(__dirname)

Поскольку я использую Typescript, мой редактор (Visual Studio Code) предупредил меня, что свойство не существует для типа Global, что имеет смысл.

Я пошел вперед и создал global.d.ts в моей root папке с

declare namespace NodeJS {
  export interface Global {
        appRoot: string;
  }
}

Это сработало отлично, и редактор сообщает мне, что все в порядке, но все равно не работает с другими случайными свойствами, поэтому все по-прежнему работает.

Однако проблема именно в этом. Когда я запускаю следующее, чтобы lint и исправить свой код, похоже, что мой файл объявления global.d.ts не распознается и происходит сбой с тем же сообщением об ошибке, которое VS Code дал мне ранее. src/app.ts:15:8 - error TS2339: Property 'appRoot' does not exist on type 'Global & typeof globalThis'.

eslint -c ./.eslintrc.js --ext .ts,.js --fix ./src/**/*.{js,ts}`

Это мои файлы конфигурации

.eslintr c. js

module.exports = {
    root: true,
    parser: '@typescript-eslint/parser',
    env: {
        node: true,
    },
    plugins: [
        '@typescript-eslint',
    ],
    extends: [
        'eslint:recommended',
        'plugin:@typescript-eslint/recommended',
    ],
    rules: {
        ...
    },
};

tsconfig. json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "moduleResolution": "node",
    "baseUrl": "./src",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modues"
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...