import * as moment from 'moment';
import { logger } from './utils/logger';
const x: moment.Moment = moment();
logger.info(x.toString());
com configuração tslint.json
:
{
"extends": ["tslint:all", "tslint-eslint-rules", "tslint-config-prettier"],
"rules": {
"completed-docs": [false],
"member-ordering": [
true,
{
"order": [
"public-static-field",
"protected-static-field",
"private-static-field",
"public-instance-field",
"private-instance-field",
"public-constructor",
"protected-constructor",
"private-constructor",
"public-static-method",
"protected-static-method",
"private-static-method",
"public-instance-method",
"private-instance-method"
]
}
],
"no-implicit-dependencies": false,
"no-inferrable-types": false,
"no-null-keyword": false,
"prettier": [
true,
{
"bracketSpacing": true,
"jsxBracketSameLine": false,
"parser": "typescript",
"printWidth": 120,
"semi": true,
"singleQuote": true,
"tabWidth": 4,
"trailingComma": "all",
"useTabs": false
}
],
"variable-name": [true, "allow-leading-underscore", "allow-pascal-case", "ban-keywords", "check-format"]
},
"rulesDirectory": ["tslint-plugin-prettier"]
}
Erros relatados:
/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:26 no-unsafe-any Unsafe use of expression of type 'any'.
ERROR: 6:13 no-unsafe-any Unsafe use of expression of type 'any'.
A capacidade de usar moment.js. A partir de agora tslint está detectando como tipo: any
, que causa erros de linting. Curiosamente, se eu tento importar um método específico, ainda recebo os mesmos erros não inseguros:
Exemplo:
import { duration, Duration } from 'moment';
import { logger } from './utils/logger';
const x: Duration = duration(1, 'week');
logger.info(x.toString());
Produz saída:
/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:21 no-unsafe-any Unsafe use of expression of type 'any'.
ERROR: 6:13 no-unsafe-any Unsafe use of expression of type 'any'.
Apenas um aviso - o arquivo .d.ts está incluído no moment - não há necessidade de instalar a partir do @types.
Apenas um aviso - o arquivo .d.ts está incluído no moment - não há necessidade de instalar a partir do @types.
Obrigado, essa teria sido minha primeira pergunta.
tslint:all
ativa no-unused-variable
. Esta regra é conhecida por interferir com outras regras de verificação de tipo: # 2736
Você pode tentar desabilitar no-unused-variable
e ver se os erros desaparecem.
Você pode tentar desabilitar nenhuma variável não utilizada e ver se os erros desaparecem.
Isso funcionou. Mas e se eu quiser usar no-unused-variable
também? Por que isso parece afetar apenas o momento do meu projeto - eu tenho muitas outras bibliotecas de terceiros que são importadas muito bem.
Mas e se eu também quiser usar nenhuma variável não usada?
Existem várias opções:
--noUnusedLocals
e --noUnusedParameters
invésno-unused-variable
, a segunda sem no-unused-variable
Por que isso parece afetar apenas o momento do meu projeto - eu tenho muitas outras bibliotecas de terceiros que são importadas muito bem.
Ninguém sabe realmente o que está errado e por quê. A regra de alguma forma mexe com as partes internas do texto datilografado.
Comentários muito úteis
Existem várias opções:
--noUnusedLocals
e--noUnusedParameters
invésno-unused-variable
, a segunda semno-unused-variable
Ninguém sabe realmente o que está errado e por quê. A regra de alguma forma mexe com as partes internas do texto datilografado.