Eu quero que values
seja uma matriz mista de object
ou number
.
// Violates 'array-type' rule
const values: (object | number)[] = []
// Violates 'prefer-array-literal' rule
const values: Array<object | number> = []
com configuração tslint.json
:
{
"extends": [
"tslint:latest",
"tslint-eslint-rules",
"tslint-config-airbnb"
]
}
Como posso escrever meu código para não violar as duas regras? Esses dois estão em conflito um com o outro e eu tenho que desistir de uma regra?
Parece que prefer-array-literal
simplesmente não é compatível com a configuração padrão da regra array-type
. Essa regra não é mantida pelo tslint, faz parte do tslint-microsoft-contrib . Você poderia definir a opção "array"
em array-type
para fazê-los trabalhar juntos. Você pode querer registrar um problema em tslint-config-airbnb sobre isso.
Para todos que chegam aqui a partir da pesquisa do Google, isso também pode ser corrigido sem alterar a regra array-type
e reformatar os usos da matriz. Habilite a opção allow-type-parameters
em prefer-array-literal
:
{
"rules": {
"prefer-array-literal": [true, { "allow-type-parameters": true }]
}
}
Fechando como externo. Sinta-se à vontade para postar um problema em tslint-microsoft-contrib
!
Comentários muito úteis
Para todos que chegam aqui a partir da pesquisa do Google, isso também pode ser corrigido sem alterar a regra
array-type
e reformatar os usos da matriz. Habilite a opçãoallow-type-parameters
emprefer-array-literal
: