gpt4 book ai didi

javascript - Typescript文件编译完成后为什么要执行ESlint?

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:18 24 4
gpt4 key购买 nike

根据TSLint官方的说法,TSLint只有在Typescript代码编译完成后才能执行。这背后的原因是什么?

官方 TSLint 文档:https://palantir.github.io/tslint/usage/cli/

最佳答案

TSLint 针对它从 TypeScript 接收到的经过解析的 AST(抽象语法树)运行。如果它从 TypeScript 接收到的 AST 有错误,它的规则逻辑可能会做出一些不正确的假设。

定义其中的一些术语:

  • AST:linter 将分析的代码的树状表示。你可以玩弄 astexplorer.net看看这是什么样子;这很漂亮! 😊
  • 语法错误:如果您编写的代码如 led foo = "bar"; (led 而不是 let)。 TypeScript 将创建与您预期不同的代码表示。
  • 语义错误:如果您编写的代码没有语法错误,但类型检查器发现了问题,例如 let foo: number = "bar";

TSLint 有一个开放的问题来讨论它是否不应该费心检查有语法或语义错误的代码:https://github.com/palantir/tslint/issues/3808

支持不在无效源文件上运行 TSLint 的另外两点:

  • 很多人难以区分 TS 和 TSLint 错误,因此当无效文件导致很多 lint 错误时可能会造成混淆
  • 未编译的 TS 代码在修复后往往会出现不同的 linting 问题,因此要求人们将它们与 TS 错误一起修复有点浪费

关于javascript - Typescript文件编译完成后为什么要执行ESlint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53741829/

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