tslint说不允许调用console.log - 我该如何允许?

Pat*_*atS 81 typescript reactjs tslint create-react-app

我刚开始使用带有typescript的create-react-app

create-react-app my-app --scripts-version=react-scripts-ts
Run Code Online (Sandbox Code Playgroud)

并且默认的tslint.json配置不允许console.log().

我怎么能(现在)启用console.log?

相关文档位于 https://palantir.github.io/tslint/rules/no-console/.但是他们没有说明这一行:

    "no-console": [true, "log", "error"]
Run Code Online (Sandbox Code Playgroud)

我搜索并找到了这个tslint.json配置文件的语法,所以我尝试了这个:

"rules": {
    "no-console": [true, "warning"]
}
Run Code Online (Sandbox Code Playgroud)

试图获取只是警告的日志消息.但那没用.

我已经注释掉了我所拥有的一些console.log()行,但希望将来能够这样做.

Chr*_*vic 152

// tslint:disable-next-line:no-console在调用之前添加行,console.log以防止只出现一次错误消息.

如果要完全禁用该规则,请将以下内容添加到您的tslint.json(最可能位于根文件夹中):

{
    "rules": {
        "no-console": false
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @EricFulmer把它放在"jsRules"节点中."jsRules":{"no-console":false}, (18认同)
  • "no-console":false对我有效,但我必须重启"npm start"才能生效. (7认同)
  • 我不确定发生了什么,但现在"没有控制台":假不适合我.我发现一个解决方法是将`// tslint:disable:no-console`放在文件的顶部. (5认同)
  • ``no-console':false`对我来说不起作用,即使是`npm run start`. (2认同)
  • 或者与以下内容在同一行: `console.log('hello world'); // tslint:disable-line:no-console` (2认同)

Lee*_*ley 23

对于那些来到这里与javascript和打字稿的混合代码库的人.

您可能需要在jsRules中定义'no-console'选项,javascript文件的jslints规则对象,即javascript和typescript有单独的规则对象.

//tslint.json

{
  "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], //Example... 
  "rules": {
    "no-console": false //Disable for typescript
  },
  "jsRules": {
    "no-console": false //Disable for javascript
  }
}
Run Code Online (Sandbox Code Playgroud)

  • no-console——看起来(我查了一下)它只是警告你控制台消息不属于生产代码。每当你的环境不是产品时,这都会使它成为一个有问题的规则 (2认同)
  • @robertotomás,此规则基于代码中不包含 console.log 消息的最佳实践。生产代码不应该有这个,所以这可以让你知道你的产品还没有准备好。您可能有两种 tslint 配置,一种允许,另一种不允许。我有一个“logger.info”函数,它调用“console.log”(因此是一个包装器),它允许我轻松启用或禁用整个应用程序的日志记录。我并不是说这是最佳实践,只是我已经做过的事情。它还可以更轻松地与其他记录器集成,例如 https://github.com/krakenjs/beaver-logger。 (2认同)

小智 10

将以下内容添加到您的 tslint.json

{
   "rules": {
      "no-console": {
         "severity": "warning",
      } 
   }
}
Run Code Online (Sandbox Code Playgroud)


Dom*_*ver 8

我处理tslint“无控制台”规则的方式是针对每个文件,我发现它在开发阶段很方便且隔离。

一旦我需要使用第一个 console.log(); Visual Studio Code 显示添加选项:

// tslint:disable-next-line: 无控制台

控制台.log();

所以这里我只删除“-next-line”,这个命令将覆盖整个文件。

// tslint:disable: 无控制台

控制台.log();

我希望它有助于作为禁用整个应用程序的功能的替代方案。

罗恩


Lir*_*n H 7

这是定义无控制台规则(或任何其他与此相关的规则)的正确语法,但只有警告而不是错误(显然将选项更改为您想要的任何内容)

"no-console": {
    "severity": "warning",
    "options": [
        "log",
        "error",
        "debug",
        "info",
        "time",
        "timeEnd",
        "trace"
    ]
},
Run Code Online (Sandbox Code Playgroud)