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)
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:
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
.
}
)npm install @types/[email protected] [email protected]
echo "" > a.ts
node node_modules/typescript/lib/tsc.js
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
}
}
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 para7.0.7
. Observe que, se isso não satisfizesse ojspm-config
semver, você acabaria com definições duplicadas.Certifique-se de deletar seu
node_modules
enpm i
após modificar seus projetos package.json.