Definitelytyped: @ types / node, não é possível compilar: node_modules/@types/node/index.d.ts (50,14): erro TS2687: Todas as declarações de 'iterador' devem ter modificadores idênticos.

Criado em 10 mar. 2017  ·  41Comentários  ·  Fonte: DefinitelyTyped/DefinitelyTyped

Desde 7.0.8, ao usar

node_modules/@types/node/index.d.ts (50,14): erro TS2687: Todas as declarações de 'iterador' devem ter modificadores idênticos.

Nosso tsconfig:

{ "compilerOptions": { "target": "es5", "module": "amd", "sourceMap": true, "strictNullChecks": true, "noImplicitAny": false, "noImplicitReturns": true, "noImplicitThis": false, "noUnusedParameters": false, "noUnusedLocals": true, "experimentalDecorators": false, "emitDecoratorMetadata": false, "removeComments": true, "outFile": "../js/ts.js" }, "exclude": [ "node_modules", "../node_modules", "../../node_modules" ] }

Os conflitos são entre @ types / node linha 50 e @ types / core-js, linha 504 (iterador: Symbol)

Comentários muito úteis

@harrietsCreativeDabblets você deve ser capaz de incluir o seguinte nas devDependencies do seu projeto (dentro de ng-start/package.json ):

"@types/node": "7.0.7"

Uma vez que isso satisfaz o jspm-config sempre, irá garantir que sua versão de @types/node seja bloqueada para 7.0.7 . Observe que, se isso não satisfizesse o jspm-config semver, você acabaria com definições duplicadas.

Certifique-se de deletar seu node_modules e npm i após modificar seus projetos package.json.

Todos 41 comentários

O mesmo problema para mim também. tsconfig:
{ "compilerOptions": { "allowJs": false, "target": "es5", "module": "commonjs", "moduleResolution": "node", "allowSyntheticDefaultImports": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "noEmitHelpers": true, "noUnusedLocals": true, "noImplicitReturns": true, "noUnusedParameters": true, "baseUrl": ".", "paths": { "app": [ "src/app" ], "app/*": [ "src/app/*" ], "core": [ "src/core" ], "core/*": [ "src/core/*" ] }, "typeRoots": [ "node_modules/@types" ] }, "compileOnSave": false, "buildOnSave": false, "exclude": [ "node_modules" ] }

Obviamente, o modificador readonly antes de iterator foi um erro. Ou core-js está errado.

O mesmo problema aqui, todas as minhas construções quebraram durante a noite.
nosso tsconfig

{
  "compilerOptions": {
    "target": "ES5",
    "sourceMap": true,
    "typeRoots": [ "node_modules/@types/" ],
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "declaration": false,
    "watch": true
  },
  "compileOnSave": true,
  "include": [
    "src/**/*"
  ],
  "exclude": [
    ".vscode",
    "node_modules",
    "dist"
  ]
}

Também tendo esse problema. Fixamos nossa versão @ types / node para 7.0.7 por enquanto, o que ainda funciona. Postando aqui principalmente para rastrear o problema.

Também estamos tendo o mesmo problema. Quebrou tudo.

1 mesmo problema.

Exatamente a mesma coisa aqui.

Mesmo aqui,
temporariamente fixado em 7.0.7.

+1 mesmo

Eu tenho o mesmo problema.
Volte para @types/node": "7.0.7" corrige o problema

funciona para mim agora com a remoção de core-js e usando @ types / [email protected] e tsconfig: "lib": ["es7"]

Mesmo aqui. Volte para @ types / node ":" 7.0.7 "corrige o problema. Marcado para rastrear o progresso.

Deve ser corrigido por # 15108. Observe que você pode precisar alterar "lib" em seu tsconfig, pois tipos como Iterator não são mais fornecidos por core-js .

@ andy-ms, o que você está sugerindo que devemos mudar "lib" para?

@baywet O que lib deve ser depende do seu projeto. Por exemplo, meu projeto compila para ES5, mas precisa de core-js para preencher polyfill com alguma funcionalidade ES6. Este é meu lib :

"lib": [
  "es6"
  "dom"
]

Verifique --lib nos documentos de opções do

qual arquivo exatamente devo alterar a versão de @ types / node ":" 7.0.7 "?
Uma pesquisa de diretório revela que tenho 2 dessas entradas:

image

qual eu mudo, ou eu mudo os dois?

Ambos estão em node_modules , portanto, presumivelmente, eles não foram registrados e não podem ser alterados diretamente. A ferramenta de instalação que você usa (por exemplo, npm ou jspm ) deve ter documentação que descreve como instalar pacotes e definir suas versões.
Mas, como a discussão acima indica, é melhor usar as versões mais recentes de todas as bibliotecas e definir corretamente --lib em seu tsconfig.json .

Uma instalação adequada terá uma versão com ^ como primeiro caractere em package.json (s), a fim de obter o mais recente. Em relação aos problemas de
Em ambientes de pré-produção e produção, você pode ter que fazer o mesmo.

@harrietsCreativeDabblets você deve ser capaz de incluir o seguinte nas devDependencies do seu projeto (dentro de ng-start/package.json ):

"@types/node": "7.0.7"

Uma vez que isso satisfaz o jspm-config sempre, irá garantir que sua versão de @types/node seja bloqueada para 7.0.7 . Observe que, se isso não satisfizesse o jspm-config semver, você acabaria com definições duplicadas.

Certifique-se de deletar seu node_modules e npm i após modificar seus projetos package.json.

@ pe8ter Obrigado pela precisão. Acabei atualizando para @ types / [email protected] e fiz essas alterações no meu tsconfig.json, mantendo assim a compatibilidade com o IE11.

"lib": [
      "dom",
      "dom.iterable",
      "es2015",
      "scripthost"
    ],

Mesmo problema aqui; resolvido com downgrade da versão 7.0.7

Mesmo problema aqui; resolvido com downgrade da versão 7.0.7

Parece que isso não foi resolvido e usar a versão 7.0.7 para sempre não é lógico. Além disso, fixar as versões não corrigiu isso para mim. Nada neste tópico tem.

@loctrice Qual é a sua versão do TypeScript de node_modules/typescript/package.json e a versão do nó de node_modules/@types/node/package.json ?

datilografado é 2.3.4 e node é 8.0.5

@loctrice Não consigo reproduzir isso com essas versões. Estou em um diretório em branco e acabei de instalá-los. O que está em seu tsconfig ? Você pode tentar obter uma pequena reprodução?
A propósito, você quis dizer 8.0.50 vez de 8.0.5 ? Testado com ambos e não obteve nenhum erro.

Não tenho certeza de qual deve ser meu tsconfig. Eu tenho batido por tipificações antigas para

{
"compilerOptions": {
"target": "es5",
"módulo": "sistema",
"moduleResolution": "node",
"sourceMap": falso,
"emitDecoratorMetadata": true,
"experimentalDecorators": verdadeiro,
"removeComments": verdadeiro,
"noImplicitAny": falso,
"typeRoots": [
"./node_modules/@types"
],
"lib": [
"es2015",
"es6",
"dom",
"dom.iterable"
]
},

Não consigo reproduzir um erro com essas versões instaladas e que tsconfig.json .

  • mkdir repro; cd repro`
  • cole esse conteúdo em tsconfig.json (e adicione o final } )
  • npm install @types/[email protected] [email protected]
  • echo "" > a.ts
  • node node_modules/typescript/lib/tsc.js
  • Sem erro

Isso me ajuda a começar a solucionar os problemas. Vou começar a adicionar minhas digitações, uma de cada vez, para ver onde está o problema em meu projeto do angular2.

parece que isso pode ser causado pelas tipificações core-js e es6 que eu instalei. Se eu remover core-js, recebo erros de recursos como "Promise is a type" que corrigi ontem fixando a versão do core-js em 0.9.35. Aqui estão minhas digitações:

chai: "^ 4.0.4",
core-js: "0.9.35",
nó: "^ 8.0.50",
camadas abertas: "^ 4.1.0",
systemjs: "^ 0,20.6",

Parece que o conflito é porque no core-js na linha 504 há uma definição para iterator: symbol e nas tipificações de nó na linha 54 há uma definição de readonly iterator: symbol alterando qualquer um desses manualmente para match fará com que meu projeto seja compilado.

Estou tentando fazer o boilerplate angular2 elétron atualizado e funcionando. Estou recebendo este erro:

node_modules/@types/node/index.d.ts(79,14): error TS2687: All declarations of 'iterator' must have identical modifiers.

79     readonly iterator: symbol;
                ~~~~~~~~
phil<strong i="9">@Loki</strong> ~/d/g/s/g/o/angular2-electron-boilerplate (master) [130]> 
grep -rnE 'iterator:\s+symbol' node_modules/
node_modules//@types/node/index.d.ts:79:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es2015.iterable.d.ts:28:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es6.d.ts:4763:    readonly iterator: symbol;
node_modules//reflect-metadata/Reflect.ts:95:    declare const Symbol: { iterator: symbol, toPrimitive: symbol };

Versões:

@philipbel , você descobriu?

Existe uma solução permanente para o problema descrito por @loctrice ?

Não, não tenho.

Em 2 de janeiro de 2018, às 2:11, Smackzter [email protected] escreveu:

@philipbel , você descobriu?

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub ou ignore a conversa.

@philipbel Parece que o problema está em reflect-metadata . Curioso como você acabou compilando com Reflect.ts vez de Reflect.d.ts .

@loctrice ,

tentei com @ types / [email protected] funcionou bem

@thanhngvpt Eu não contribuo com este projeto, então não posso fornecer uma solução. Acabei sendo forçado a atualizar meu projeto, e com isso a maioria dos pacotes, e tudo parecia bem.

Para resolver isso

npm i [email protected] --save

Minha construção quebrou de lugar nenhum !! Este problema ainda é mostrado.

Meu env

Ionic:

   Ionic CLI          : 5.2.3 (C\\\\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 8.0.0
   Cordova Platforms : android 8.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 20 other plugins)

Utility:

   cordova-res : 0.8.1
   native-run  : 1.0.0

System:

   Android SDK Tools : 26.1.1 (C:\\\\AppData\Local\Android\Sdk)
   NodeJS            : v10.15.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.4.1
   OS                : Windows 10
Typescript is 2.5

Sim, nada do que eu faço parece resolver esse problema. Não tenho uma definição lib em meu tsconfig.json e estou completamente perplexo com as informações fornecidas neste tópico. Este é meu arquivo tsconfig.json :

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "rootDir": "src",
        "outDir": "out",
        "forceConsistentCasingInFileNames": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "pretty": true,
        "declaration": true
    }
}

O que exatamente devo fazer sobre isso para parar de produzir os seguintes erros do compilador, sobre os quais não tenho absolutamente nenhum controle?

node_modules/vscode/vscode.d.ts:534:3 - error TS2687: All declarations of 'textEditor' must have identical modifiers.

534     textEditor: TextEditor;
        ~~~~~~~~~~

node_modules/vscode/vscode.d.ts:8363:3 - error TS2687: All declarations of 'body' must have identical modifiers.

8363    body?: any;
        ~~~~

Dependências:

"devDependencies": {
  "@types/node": "^8.10.59",
  "@types/vscode": "^1.1.36",
  "rimraf": "^3.0.0",
  "tslint": "^5.20.1",
  "tslint-config-xo": "^2.0.0",
  "typescript": "^3.7.4",
  "vscode": "^1.1.36"
}

Parece que adicionar "skipLibCheck": true ao meu tsconfig.json removeu os erros do compilador. Não tenho certeza se é uma boa ideia não verificar as bibliotecas usadas, no entanto.

{
    "compilerOptions": {
        "skipLibCheck": true
    }
}
Esta página foi útil?
0 / 5 - 0 avaliações