Я немного погуглил, но ничего не могу найти по этому поводу, может быть, потому, что я не совсем уверен, что вызывает проблему.
Я хотел установить глобальное значение для 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"
]
}