Tslint: array-type vs prefer-array-literal

Criado em 23 jun. 2017  ·  3Comentários  ·  Fonte: palantir/tslint

Relatório de erro

  • __TSLint versão__: 5.4.3
  • __TypeScript version__: 2.3.4
  • __Executando TSLint via__: WebStorm

Código TypeScript sendo vinculado

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?

External

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ção allow-type-parameters em prefer-array-literal :

{
  "rules": {
    "prefer-array-literal": [true, { "allow-type-parameters": true }]
  }
}

Todos 3 comentários

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 !

Esta página foi útil?
0 / 5 - 0 avaliações