TypeScript - Resolvendo o Duplicate Identifier Error

Se livre de uma vez por todas do Duplicate Identifier Error

Por Humberto Machado em 16-11-2016

TypeScript - Resolvendo o Duplicate Identifier Error

Um dos problemas mais chatos que você pode encontrar quando for usar TypeScript é:

1
Duplicate identifier...

ou

1
message TS4090: Conflicting definitions for...

Isto acontece quando o compilador tenta carregar o mesmo módulo ou definição (.d.ts) mais de uma vez, identificando que este está duplicado. Quando se instala uma dependência via npm install, o npm já identifica se o módulo está baixado evitando duplicação, mas, se você esta usando módulos locais com npm link, é quase certo que terá este problema.

Este erro não impede que o JavaScript seja gerado, mas aqui pra nós, é muito chato ver milhares de erro no seu console quando mandamos executar ou compilar algo.

Resolução

Atualize a versao do TypeScript

1
npm install typescript -g

Configuração do compilador

Coloque esta configuração do seu tsconfig.json:

1
2
3
4
5
6
7
8
"compilerOptions" {
....
"baseUrl": "./",
"paths": {
"*": [ "node_modules/@types/*", "*"]
}
...
}

Isto informará ao compilador que quando ele for resolver um módulo qualquer, procure primeiro em .\node_modules\@types\ e so depois nos demais locais, evitando a duplicidade do carregamento.

Referências

Obrigado @mhegazy pela dica!!