问题标签 [tslint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typescript - 为什么 TSLint 和 JSLint 报告空块?
有时,我会收到 TSLint 错误“块为空”。例如,当我将无操作回调传递给函数时,就会发生这种情况:
从我读到的内容来看,JSLint 显然也是这样做的,但我没有验证这一点。
我发现这些用法完全有效,所以我试图找到一个为什么空块被认为是坏的原因。但我唯一能找到的(例如在这个答案中)是添加 areturn;
以避免错误的说明。这不是我想在每个空回调中做的。
为什么 TSLint 将空块上方报告为问题?有什么理由我不应该禁用检查吗?
typescript - 如何确定 TypeScript.Expression 对象的结果类型?
使用 TypeScript 抽象语法树时,如何确定 TypeScript.Expression 对象的结果类型?
我正在使用 TSLint 并试图找到不将 Function 类型的对象作为第一个参数传递的 setTimeout 调用。例如,在下面的代码中,我想知道调用了 setTimeout 并且第一个参数是一个函数。
AST 排列如下:
- setTimeout -> TypeScript.CallExpression
- createFunction() -> TypeScript.Expression
我曾尝试使用 LanguageService 来确定表达式的类型,但以下 API 都没有满足我的需求:
- languageServices.getQuickInfoAtPosition
- languageServices.getDefinitionAtPosition
- languageServices.getTypeDefinitionAtPosition
有任何想法吗?
typescript - 如何确定作为函数参数的 TypeScript.Expression 的编译时类型?
使用 TypeScript 抽象语法树时,如何确定作为函数参数提供的 TypeScript.Expression 的编译时类型?
在下面的代码中,我想知道传递给 setTimeout 的参数的类型。
AST 排列如下:
我尝试了几种方法来获取此信息,但 TypeChecker 一直将类型报告为“任何”。
一个节点有一个父节点……我可以爬上 AST 分析父节点,直到找到正确的定义。但这是个坏主意。必须有更简单的方法。
有任何想法吗?
typescript - 文件第一行中的“use strict”会影响文件中的所有功能吗?
所以我从这里改编了这段代码用于学习目的:
我正在使用这些tslint.json规则在此文件上运行tslint 。
这就是我得到的:
app.ts[10, 1]:缺少“使用严格”
app.ts[17, 1]:缺少“使用严格”
app.ts[33, 1]:缺少“使用严格”
app.ts[43, 1]:缺少“使用严格”
我的理解是,"use string";
文件的第一行应该是整个文件的全局。然而,每个函数都会产生一条消息。我错过了什么吗?
typescript - TSLint:未使用的 var 关键字
我已经为我的 TypeScript 项目配置了 TSLint,但我不知道警告是什么forbidden var keyword
意思。这是一个最小的示例,它会导致 TSLint 警告:
谢谢你。
编辑:我正在使用示例 tslint.json。
javascript - VSCode TypeScript lint
开发 TypeScript 的人使用 Visual Studio Code?我也在尝试使用它。但我没有验证(ts-lint)警告或错误。我刚刚在构建时收到这样的消息:
例子:
1 == 2
JS 文件中的这样的表达式会告诉我使用1 === 2
. 但是 TS 文件中的这个表达式会起作用,甚至不会显示任何警告。
在打字时,我能做些什么来在 TypeScript 中启用这种验证?
gulp - Gulp TsLint & Mocha 报告文件
我可以使用 TSLint 检查我的 TypeScript 文件的语法错误,但我无法生成带有错误的报告文件,而且我对 mocha 也有同样的问题:我运行测试但我无法生成文件报告。
我正在使用 gulp 任务。
methods - TypeScript 方法类型签名冗余
也许我严重遗漏了一些东西,但我无法摆脱我所有课程的语法问题。
这是一个例子:
由于我使用 tslint 强制执行类型声明,所以我的所有方法都是这样编写的。这太糟糕了。必须复制粘贴参数部分,重命名类型声明和 lambda 声明之间的参数名称非常痛苦。
那么:有没有更好的方法来结合类型签名和 lambda 声明而不需要所有的膝跳?我真诚地希望我错过了一些东西,希望这不是“设计”!:)
gulp - Gulp watch 任务运行一次,然后在第二次运行时挂起
我有一些 gulp 任务来运行我的 TSLint 检查项目。我的任务是只查看新更改的文件并在它们更改时运行检查(在文件保存时)。目前,当我运行watchTS
任务时,它将在我保存/更改的第一个文件时运行并正常工作。在下一次文件更改时,它将运行任务但实际上并未完成或执行任何 TSLint 验证。
吞咽输出
它运行一次,发现错误。我做了一些事情让它再次运行,它永远不会完成任务或运行 TSLint。
以下是相关的 gulp 任务
visual-studio-2015 - 在 Visual Studio 2015 中设置 TSLint
我在 Visual Studio 2013 中使用 Typescript 进行开发,并且总是在底部打开我的错误列表。TSLint 在我编写代码时告诉我代码混乱/不正确。除了安装 Web Essentials 插件,我认为我不需要做任何事情。
我最近安装了 Visual Studio 2015,但终生无法让 TSLint 像在 Visual Studio 2013 中那样工作。我是否遗漏了一些明显的东西?