gpt4 book ai didi

typescript - WSL2 VSCode 不使用本地 tsconfig.json 文件

转载 作者:行者123 更新时间:2023-12-02 01:50:06 25 4
gpt4 key购买 nike

这不是重复的问题!请阅读详细信息以同意这一点!

我搜索了很多,发现了很多关于 settings.json 文件中的设置的答案和文章:

{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.validate.enable": true,
}

我有它们,但我的 VSCode 不想显示 strict 编译器选项产生的内联 TypeScript 错误(我有我的 tsconfig.json)。

如果我这样写:

const foo: number = "test";

我可以看到 Type 'string' is not assignable to type 'number'.,但是遵循简单的脚本在 VSCode 中没有错误。

const { test } = process.env;
const tests = { test: "test" };

console.log(tests[test]);

tscnode -r ts-node/register 正确给出错误 test.ts:4:19 - error TS2538: Type 'undefined' cannot用作索引类型。

我还尝试从 WSL2 和 WIndows 卸载并重新安装 VSCode,但没有帮助。

文件内容。

.vscode/extensions.json

{
"recommendations": ["dbaeumer.vscode-eslint", "eg2.vscode-npm-script", "esbenp.prettier-vscode", "ms-python.python", "myh.preview-vscode", "rohit-gohri.format-code-action"]
}

.vscode/settings.json

{
"editor.codeActionsOnSave": ["source.formatDocument", "source.fixAll.eslint"],
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"eslint.alwaysShowStatus": true,
"eslint.debug": true,
"eslint.validate": ["javascript", "typescript"],
"explorer.confirmDelete": false,
"files.autoSave": "off",
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,
"git.ignoreMissingGitWarning": true,
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.validate.enable": true,
"window.zoomLevel": 0,
"[javascript]": { "editor.formatOnSave": false },
"[python]": { "editor.defaultFormatter": "ms-python.python" },
"[typescript]": { "editor.formatOnSave": false }
}

.eslintrc.js

const rules = {
"arrow-body-style": ["error", "as-needed"],
"arrow-parens": ["error", "as-needed"],
"arrow-spacing": "error",
"brace-style": ["error", "1tbs", { allowSingleLine: true }],
curly: ["error", "multi-or-nest"],
eqeqeq: ["error"],
indent: ["error", 2],
"key-spacing": ["error", { align: { afterColon: true, beforeColon: false, on: "value" } }],
"keyword-spacing": ["error", { before: true, overrides: { catch: { after: false }, if: { after: false }, for: { after: false }, switch: { after: false }, while: { after: false } } }],
"linebreak-style": ["error", "unix"],
"no-console": "warn",
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
"nonblock-statement-body-position": ["error", "beside"],
"prefer-const": ["error", { destructuring: "all" }],
semi: ["error", "always"],
"space-before-function-paren": ["error", { anonymous: "never", asyncArrow: "always", named: "never" }],
"space-unary-ops": ["error", { nonwords: false, words: true, overrides: { "!": true } }],
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/type-annotation-spacing": ["error", { after: true, before: false, overrides: { arrow: { before: true } } }]
};

module.exports = {
env: {
amd: true,
browser: true,
es6: true,
jquery: true,
node: true
},
extends: ["plugin:@typescript-eslint/recommended"],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 9,
sourceType: "module"
},
root: true,
rules
};

package.json

{
"author": "Daniele Ricci <daniele.icc@gmail.com> (https://github.com/iccicci)",
"dependencies": {},
"description": "test",
"name": "test",
"license": "MIT",
"devDependencies": {
"@types/node": "17.0.0",
"@typescript-eslint/eslint-plugin": "5.7.0",
"@typescript-eslint/parser": "5.7.0",
"eslint": "8.5.0",
"prettier": "2.5.1",
"ts-node": "10.4.0",
"typescript": "4.5.4"
},
"prettier": {
"arrowParens": "avoid",
"endOfLine": "lf",
"jsxBracketSameLine": true,
"printWidth": 200,
"trailingComma": "none",
"useTabs": false
},
"scripts": {
"test": "node -r ts-node/register test.ts",
"start": "tsc --declaration"
}
}

tsconfig.json

{
"compilerOptions": {
"alwaysStrict": true,
"esModuleInterop": true,
"declaration": true,
"module": "commonjs",
"noImplicitAny": true,
"noImplicitThis": true,
"noImplicitReturns": true,
"target": "es2017",
"strict": true,
"strictBindCallApply": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"strictPropertyInitialization": true
},
"include": ["test.ts"]
}

test.ts

const { test } = process.env;
const tests = { test: "test" };

console.log(tests[test]);

最佳答案

我知道这是旧的,但对于任何发现这个的人来说,将 vscode 设置为使用工作区 typescript 版本对我有用

即。

Ctrl + Shift + P - typescript :选择 typescript 版本... -使用工作区版本

关于typescript - WSL2 VSCode 不使用本地 tsconfig.json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70414459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com