VSCode、typescript、eslint和prettier->;空检查不起作用
我试着将TypeScriptLinting设置为使用prettier,而prettier工作时,我似乎丢失了基本的typescript错误检查。我怎样才能找回这个 ^应该抱怨访问VSCode、typescript、eslint和prettier->;空检查不起作用,typescript,eslint,prettier,Typescript,Eslint,Prettier,我试着将TypeScriptLinting设置为使用prettier,而prettier工作时,我似乎丢失了基本的typescript错误检查。我怎样才能找回这个 ^应该抱怨访问foo上的.value Mytsconfig.json { "compilerOptions": { "outDir": "./dist/", "noImplicitAny": true, "module": "es6", "target": "es5", "jsx": "r
foo
上的.value
Mytsconfig.json
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"module": "es6",
"target": "es5",
"jsx": "react",
"allowJs": true,
"sourceMap": true,
"moduleResolution": "node",
"baseUrl": "./src",
"allowSyntheticDefaultImports": true,
"paths": {
"~/*": ["./*"]
}
},
}
{
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
],
"plugins": ["@typescript-eslint", "prettier"],
"env": {
"browser": true,
"jasmine": true,
"jest": true,
"es6": true
},
"rules": {
"prettier/prettier": [
"error",
{ "singleQuote": true, "semi": false }
],
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/class-name-casing": ["error", { "allowUnderscorePrefix": true }],
"@typescript-eslint/interface-name-prefix": ["error", { "prefixWithI": "always", "allowUnderscorePrefix": true}],
"@typescript-eslint/no-unused-vars": ["error", { "args": "none"}],
"@typescript-eslint/no-non-null-assertion": "off",
"semi":"off"
},
"parser": "@typescript-eslint/parser"
}
.eslintrc.json
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"module": "es6",
"target": "es5",
"jsx": "react",
"allowJs": true,
"sourceMap": true,
"moduleResolution": "node",
"baseUrl": "./src",
"allowSyntheticDefaultImports": true,
"paths": {
"~/*": ["./*"]
}
},
}
{
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
],
"plugins": ["@typescript-eslint", "prettier"],
"env": {
"browser": true,
"jasmine": true,
"jest": true,
"es6": true
},
"rules": {
"prettier/prettier": [
"error",
{ "singleQuote": true, "semi": false }
],
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/class-name-casing": ["error", { "allowUnderscorePrefix": true }],
"@typescript-eslint/interface-name-prefix": ["error", { "prefixWithI": "always", "allowUnderscorePrefix": true}],
"@typescript-eslint/no-unused-vars": ["error", { "args": "none"}],
"@typescript-eslint/no-non-null-assertion": "off",
"semi":"off"
},
"parser": "@typescript-eslint/parser"
}
为什么
foo.value
应该是错误的foo
是一个包含值作为变量的对象,logFoo(foo:{value:number | null})
@PareshLomatefoo
的类型是{value:number}null
,因此foo
可以是null
,如果foo===null
我就不能访问foo.value
你是说tsc
strictNullChecks
(或者更全面的strict
,包括strictNullChecks
)吗?您的配置中没有这些选项,如果我启用上述选项,编译器将再次发出错误。请写一个答案,我将接受它。谢谢