打字稿tslint react setup中的“'public'只能在.ts文件中使用”吗?

时间:2019-02-13 21:31:30

标签: typescript visual-studio-code tslint

我无法弄清楚为什么在VSCode中使用react typescript项目,tslint设置会出现错误:

  

“公共”只能在.ts文件中使用。

[实际上也是为什么我没有得到通常的变量a,也从未读取/使用过警告/错误]

enter image description here

tsconfig.json

{
  "compilerOptions": {
    "plugins": [
      {
        "name": "typescript-tslint-plugin"
      }
    ]
  },
}

tslint.json

{
    "defaultSeverity": "error",
    "extends": ["tslint:recommended", "tslint-react"],
    "jsRules": {},
    "rules": {
        "semicolon": [true, "never"]
    },
    "rulesDirectory": []
}

package.json

{
  "name": "test-amplify-1",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@types/jest": "24.0.1",
    "@types/node": "11.9.0",
    "@types/react": "16.8.2",
    "@types/react-dom": "16.8.0",
    "react": "^16.8.1",
    "react-dom": "^16.8.1",
    "react-scripts": "2.1.5"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ],
  "devDependencies": {
    "tslint": "^5.12.1",
    "tslint-react": "^3.6.0",
    "typescript": "^3.3.3",
    "typescript-tslint-plugin": "^0.3.1"
  }
}

vscode扩展

enter image description here

内置的(即没有触摸)

enter image description here

已使用本地软件包(打字稿/ tslint)进行了设置,但仅供参考:

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为默认情况下未启用tsx,您是否尝试过将jsx添加到tsconfig文件中?

{
  "compilerOptions": {
    "outDir": "./dist/",
    "sourceMap": true,
    "noImplicitAny": true,
    "module": "commonjs",
    // "target": "es5",
    "removeComments": true,
    "jsx": "react",
    "allowJs": false,
    "baseUrl": "src",
    "experimentalDecorators": true,
    "alwaysStrict": true,
    "lib": [
      "es2015"
    ],
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "skipLibCheck": true,
    "allowSyntheticDefaultImports": true
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules"
  ],
  "awesomeTypescriptLoaderOptions": {
    "useCache": true,
    "useTranspileModule": true,
    "transpileOnly": true
  }
}

答案 1 :(得分:0)

您的问题可能已经在此得到解答。以下是有关我认为的更多详细信息。 js 'types' can only be used in a .ts file - Visual Studio Code using @ts-check
 我最终可以看到我正在运行tslint 1.0.0版本。另外,您的打字稿版本可能有问题。如果您使用的是Typescript 2.3或更早版本,则启用潮汐功能时,html文件将被视为Typescript文件。将打字稿更新为2.4.1。同时更新打字稿/语言服务。将以下内容添加到tsconfig.json。可能是因为您使用的版本不对。
关于为什么a变量为什么抱怨为unused的问题,答案是您已经声明了一个变量,但尚未在代码中的任何地方使用它,因此可以忽略此类警告。在代码中的某处使用该变量后,该警告将消失。因此,更改角度版本,然后查看警告是否会消失。通常,tslint应该能够检测到.ts文件并正常工作。