Jshint: Propriedades "spread" do objeto (proposta de estágio 2) não são compatíveis

Criado em 30 jul. 2016  ·  27Comentários  ·  Fonte: jshint/jshint

eu tenho algo assim

  args: {
    ...connectionArgs,
  },

E jshint está reclamando
xpected '}' to match '{' from line 167 and instead saw '...'.

O que devo adicionar ao meu arquivo .jshintrc para permitir a destruição?

Has PR P1 Proposal

Comentários muito úteis

+1 por apoiar isso. Já é amplamente utilizado em React/Redux

Todos 27 comentários

JSHint atualmente não suporta este recurso de linguagem proposto. No entanto, ele alcançou recentemente o "Estágio 2" no processo de padronização, por isso estamos interessados ​​em adicionar suporte em uma versão futura.

Oh obrigado @jugglinmike , alguma idéia sobre como posso fazer o jshint ignorá-lo pelo menos?

Claro, você vai querer usar as diretivas em linha jshint ignore:start e jshint ignore:end :

  args: {
+   // jshint ignore:start
    ...connectionArgs,
+   // jshint ignore:end
  },

Atualizei o título do problema para descrever com mais precisão a solicitação de recurso.

Seria ótimo ter suporte JSHint para isso, já que agora é o Estágio 3

+1 por apoiar isso. Já é amplamente utilizado em React/Redux

+1. Alguém está trabalhando nisso?

+1 por fazer isso. Obrigado rapazes!

+1 gostaria muito disso

+1

+1

O suporte para este recurso de linguagem foi mesclado com o branch de recursos v2.10.0 (via gh-3150), portanto, esperamos que ele seja incluído na próxima versão secundária do JSHint. Vou rotular esse problema como "tem PR" para comunicar melhor esse status.

Apenas alguns dias atrás eles anunciaram:

O suporte para este recurso de linguagem foi mesclado com o branch de recursos v2.10.0 (via gh-3150), portanto, esperamos que ele seja incluído na próxima versão secundária do JSHint. Vou rotular esse problema como "tem PR" para comunicar melhor esse status.

Mas foi assim que eu consertei:

Adicione AMBOS esnext e esversion ao seu arquivo .jshintrc :

...
"esnext": true,
"esversion": 6,
...

Aqui está meu arquivo .jshintrc completo:

{
    "mocha": true,
    "freeze": true,
    "bitwise": false,
    "browserify": true,
    "strict": true,
    "worker": true,
    "scripturl": true,
    "latedef": "nofunc",
    "onevar": true,
    "node": true,
    "maxstatements": 25,
    "futurehostile": true,
    "noarg": true,
    "unused": true,
    "esnext": true,
    "esversion": 6,
    "eqeqeq": true,
    "nocomma": false,
    "devel": true,
    "maxdepth": 6,
    "jquery": true,
    "browser": true,
    "debug": true,
    "maxparams": 5,
    "undef": true,
    "globalstrict": true,
    "maxcomplexity": 20,
    "typed": true,
    "nonew": true,
    "forin": false,
    "shadow": true,
    "-W018": false
}

+1 mal posso esperar pelo lançamento da v2.10.0. Bom trabalho! Existe algum cronograma para v2.10.0?

Ao executar [email protected]

Quando eu tenho os dois

{
  "esnext": true,
  "esversion": 6,
}

Estou tendo o erro a seguir:

Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned).

O mesmo aqui em: Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned).

Qual é a linha do tempo para 2.10.0 ?

Eu também recebo Incompatible values for the 'esversion' and 'esnext' linting options mesmo depois de instalar diretamente do branch v2.10.0 no GitHub. O erro desaparece quando eu omito esversion completamente. Aqui está um trecho do meu .jshintrc , agora:

"esnext": true,
"unstable": {
  "objspreadrest": true
},

A ideia desse erro é realmente "não use tanto 'esversion' quanto 'esnext' (ou 'es3' ou 'es5'), afaiu.

O texto poderia ser mais claro, mas o objetivo do erro parece ser "emitir avisos para que eventualmente possamos remover essas opções e as pessoas usarem apenas 'esversion').

@jugglinmike você acha que devemos apenas torná-lo um erro não fatal ou permitir que 'esversion' explícito substitua as opções de versão herdada?

@chaddjohnson Essa filial está disponível para promover a transparência e permitir a colaboração. É claro que você é bem-vindo para executar qualquer código neste projeto, mas entenda que não endossamos o uso de código não lançado porque não temos largura de banda para suportá-lo.

@caitp Prefiro proibir a ambiguidade em vez de tentar interpretá-la. Compartilharei mais detalhes em uma resposta ao seu pull request.

https://github.com/jshint/jshint/issues/2991#issuecomment -349636400

[jshint] Incompatible values for the 'esversion' and 'esnext' linting options. (0% scanned). (E059)

https://github.com/jshint/jshint/issues/2991#issuecomment -396695974

[jshint] Bad option: 'unstable'. (E001)

@jugglinmike Então você quer dizer que é impossível agora usar jshint?

De jeito nenhum, @NatoBoram. Estou desencorajando o uso de versões inéditas do projeto.

Hmmm como alguém encontrou uma solução para o:

Valores incompatíveis para as opções de linting 'esversion' e 'esnext'. (0% digitalizado). (E059)

alguma resolução disso? quando o jshint suportará as sintaxes LATEST?

Alguma palavra sobre isso? Eu realmente aprecio essa ferramenta, mas precisar encher meus scripts com comentários "ignorar" é o pior.

Alguém teria tempo para dar uma olhada nisso? Estou executando o 2.9.7, que é a versão mais recente do jshint, dentro do editor Atom, e o código do meu aplicativo React Native está repleto de erros de sintaxe sobre o operador spread em literais de objeto. Definir "esnext":true em .jshintrc não ajuda. A ferramenta se recusa a funcionar quando "esnext":true e "esversion":6 são definidos.

Se alguém tiver uma solução alternativa que funcione agora, por favor, publique-a?

O suporte para esse recurso estará disponível na versão 2.10.0 do JSHint, que esperamos lançar no início do próximosemana . Marcarei este problema como "resolvido" assim que for publicado.

Acabamos de lançar suporte para object rest/spread no JSHint versão 2.10.0 .

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

Questões relacionadas

Daniel-Hug picture Daniel-Hug  ·  3Comentários

SidNM picture SidNM  ·  7Comentários

jugglinmike picture jugglinmike  ·  6Comentários

arian picture arian  ·  7Comentários

NemoStein picture NemoStein  ·  7Comentários