VSCode中的Typescript服务器错误地报告未使用的私有变量

时间:2017-12-22 23:22:36

标签: typescript visual-studio-code

为什么打字稿报告该变量未被使用,即使它在_close()方法中被引用?

奇怪的是,如果删除private关键字,警告就会消失。

请注意,即使它是警告,它仍然无法编译。

enter image description here

tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "noUnusedLocals": true, <-- This line
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

1 个答案:

答案 0 :(得分:4)

Typescript抱怨你永远不会读取变量。您的_close方法仅设置它。我认为打字稿正确地抱怨,如果你以后从未对使用它的价值感兴趣那么存储的意义是什么?

此外,如果删除private修饰符,则错误消失,因为具有该类实例的任何人都可以读取该值。因此,typescript不再能够验证该值是否永远不会被读取(因为它可能被其他人使用)。但是对于private,它只知道类方法可以访问它,所以如果它没有看到值在类本身的任何地方读取,它将产生错误。