我正在使用tslint,并得到了错误。
'myVariable' is declared but its value is never read.
我访问了记录规则https://palantir.github.io/tslint/rules/的网站,并搜索了字符串is declared but its value is never read
但未找到该文字。虽然我可以并且确实寻找可能与此错误相关的设置,但它不应该是猜谜游戏。
阻止/停止此错误需要进行哪些配置更改?
同样重要的是,当我在tslint中收到“发生这种情况”的错误时,如何找到用于配置或更改如何处理该错误的tslint行为的设置? < / p>
我也在网站上搜索过(我用过的谷歌搜索)
site:palantir.github.io is declared but its value is never read
但没有出现直接命中,所以答案可能在palantir.github.io网站上,但我还没有(还)找到它。
其他人如何找到更改以抑制特定错误的tslint变量/配置设置?
请不要建议我注释掉导致问题的代码。我正在寻找一个更普遍的问题以及具体问题的答案。谢谢。
答案 0 :(得分:20)
任何以_开头的参数名称均不受检查。使用_myVariable
代替myvariable
删除此警告。
答案 1 :(得分:16)
首先在tsconfig.json中关闭noUnusedLocals
:
{
"compilerOptions": {
"noUnusedLocals": false,
}
}
然后在.eslintrc.js
中修复eslint规则:
module.exports = {
rules: {
'no-unused-vars': [1, { 'varsIgnorePattern': '^_' }],
'@typescript-eslint/no-unused-vars': [1, { 'varsIgnorePattern': '^_' }],
},
};
如果使用 @typescript-eslint/naming-convention
规则,则应添加leadingUnderscore: 'allow'
,例如,如果您使用的是Airbnb配置:
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'variable',
format: ['camelCase', 'PascalCase', 'UPPER_CASE'],
leadingUnderscore: 'allow',
},
{
selector: 'function',
format: ['camelCase', 'PascalCase'],
},
{
selector: 'typeLike',
format: ['PascalCase'],
},
],
答案 2 :(得分:15)
在导致错误的行之前添加此行:
-- Sample table with a VARBINARY(MAX) column
CREATE TABLE tmp (id INT IDENTITY(1,1) PRIMARY KEY, col VARBINARY(MAX))
-- Insert sample data - 20 bytes per row.
;WITH cte AS
(
SELECT 1 AS rn, HASHBYTES('sha1', 'somerandomtext') t
UNION all
SELECT rn + 1, HASHBYTES('sha1', 'somerandomtext')
FROM cte
WHERE rn< 5000
)
INSERT INTO tmp (col)
SELECT t FROM cte
OPTION (maxrecursion 0)
-- @total_bytes is the desired size of the table after the delete statement
DECLARE @total_bytes int = 200
-- Use the SUM window function to get a running total of the DATALENGTH
-- of the VARBINARY field, and delete when the running total exceeds
-- the desired table size.
-- You can order the window function however you want to delete rows
-- in the correct sequence.
DELETE t
FROM tmp t
INNER JOIN
(
SELECT id, SUM(DATALENGTH(col)) OVER (ORDER BY id) total_size
FROM tmp
)sq ON t.id = sq.id AND sq.total_size > @total_bytes
您将不再收到tslint错误消息。
与在tslint.conf中关闭整个代码库的错误相比,这是一个更好的解决方案,因为这样一来,它就不会捕获真正未使用的变量。
答案 3 :(得分:11)
拳头问题:
编辑文件:tsconfig.json,添加/修改密钥&#34; noUnusedLocals &#34;: false 。
您需要重新启动服务器。
第二个问题:
如果是tslint错误; VS代码在错误消息中显示已应用的规则。
Identifier 'doc' is never reassigned; use 'const' instead of 'let'. (prefer-const)
在这种情况下 prefer-const 规则。
答案 4 :(得分:2)
有两种类型的变量,您可以通过两种方式完成
varsIgnorePattern
no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]
no-unused-vars: ["error", { "varsIgnorePattern": "^_" }]
eslint中的这两个规则将忽略分别以_符号开头的任何函数参数和变量
答案 5 :(得分:1)
我将typescript": "2.9.1"
与tslint": "^5.10.0
一起使用。
我遇到了很多错误,例如
Property 'logger' is declared but its value is never read.
此外,我发现运行ng-lint
$> ng lint
no-unused-variable is deprecated. Since TypeScript 2.9. Please use the built-in compiler checks instead.
因此,我从no-unused-variable
中删除了tslint.json
规则-这似乎为我解决了这个问题。
答案 6 :(得分:1)
我在此网站上看到了一个解决方案:https://phpenthusiast.com/blog/angular-form-ngform-and-two-ways-data-binding。
它帮助了我,但只有 50%
这是我修改后的代码:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';// i added this line and one more line.
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { DheerajComponent } from './dheeraj/dheeraj.component'
@NgModule({
declarations: [
AppComponent,
DheerajComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule, // this one. remaining all default code
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
答案 7 :(得分:0)
另一种避免这种情况的方法是为您拥有的每个变量创建一个get方法,如下所示:
get variablename():variabletype{return this.variablename;}
答案 8 :(得分:0)
用dev.tsconfig.json扩展tsconfig.json
并运行命令tsc -p ./dev.tsconfig.json
这将在开发中定义未使用的变量和未使用的参数
在dev.tsconfig.json内部:
{
"extends": "./tsconfig.json",
"compilerOptions": {
"noUnusedLocals": false,
"noUnusedParameters": false,
}
}