3.15.12.0.3let myBool: boolean = true;
with tslint.json configuration:
{
"rules": {
"class-name": true,
"comment-format": [
true,
"check-space"
],
"curly": true,
"eofline": true,
"forin": true,
"indent": [
true,
"spaces"
],
"label-position": true,
"label-undefined": true,
"max-line-length": [
true,
140
],
"member-access": false,
"member-ordering": [
true,
"static-before-instance",
"variables-before-functions"
],
"no-arg": true,
"no-bitwise": true,
"no-console": [
true,
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"no-construct": true,
"no-debugger": true,
"no-duplicate-key": true,
"no-duplicate-variable": true,
"no-empty": false,
"no-eval": true,
"no-inferrable-types": true,
"no-shadowed-variable": true,
"no-string-literal": false,
"no-switch-case-fall-through": true,
"no-trailing-whitespace": true,
"no-unused-expression": true,
"no-unused-variable": true,
"no-unreachable": true,
"no-use-before-declare": true,
"no-var-keyword": true,
"object-literal-sort-keys": false,
"one-line": [
true,
"check-open-brace",
"check-catch",
"check-else",
"check-whitespace"
],
"quotemark": [
true,
"single"
],
"radix": true,
"semicolon": [
"always"
],
"triple-equals": [
true,
"allow-null-check"
],
"typedef-whitespace": [
true,
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
}
],
"variable-name": false,
"whitespace": [
true,
"check-branch",
"check-decl",
"check-operator",
"check-separator",
"check-type"
]
}
}
When I have the following Typescript line in a test spec:
let myBool: boolean = true;
the linter complains with:
(no-inferrable-types) app/app.component.spec.ts[39, 17]: LHS type (boolean) inferred by RHS expression, remove type annotation
So I change the code to read:
let myBool = true;
and the error goes away.
Why is this? Shouldn't I be able to write valid Typescript in a spec?
Note this problem does not occur in a regular Typescript class. My spec file seems to transpile just fine.
This doesn't mean to be a nit-picking question: I am just curious.
Thanks.
There is no-inferrable-types in your tslint.json which warns you about such cases with primitives (number, string, boolean).
Just remove it from your configuration ant there will be no warnings.
To make sure that definitions are required you can check typedef rule and add it to your tslint.json
@IllusionMH Thank-you
That REALLY should NOT be a default.
number, string, boolean
There is
no-inferrable-typesin yourtslint.jsonwhich warns you about such cases with primitives (number, string, boolean).
Just remove it from your configuration ant there will be no warnings.To make sure that definitions are required you can check
typedefrule and add it to yourtslint.json
Just courious to check, if [no-inferrable-types] is removed then it will not warn not only for boolean but also for number, string. Will it be feasible solution?
Most helpful comment
There is
no-inferrable-typesin yourtslint.jsonwhich warns you about such cases with primitives (number, string, boolean).Just remove it from your configuration ant there will be no warnings.
To make sure that definitions are required you can check
typedefrule and add it to yourtslint.json