Angular: Não é possível encontrar Promessa, Mapa, Conjunto e Iterador

176

Depois de instalar Angular, o compilador manter Typescript recebendo alguns erros em não encontrar Promise, Map, Sete Iterator.

Até agora eu os ignorei, mas agora preciso Promisepara que meu código funcione.

import {Component} from 'angular2/core';
@Component({
    selector: 'greeting-cmp',
    template: `<div>{{ asyncGreeting | async}}</div>`
})
export class GreetingCmp {
    asyncGreeting: Promise<string> = new Promise(resolve => {
// after 1 second, the promise will resolve
        window.setTimeout(() => resolve('hello'), 1000);
    });
}

Additional information:
npm -v is 2.14.12
node -v is v4.3.1
typescript v is 1.6

Os erros:

................ERROS OF MY CODE.................
    C:\Users\armyTik\Desktop\angular2\greeting_cmp.ts
    Error:(7, 20) TS2304: Cannot find name 'Promise'.
    Error:(7, 42) TS2304: Cannot find name 'Promise'.
    .........................................
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\platform\browser.d.ts
    Error:(77, 90) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\application_ref.d.ts
    Error:(83, 60) TS2304: Cannot find name 'Promise'.
    Error:(83, 146) TS2304: Cannot find name 'Promise'.
    Error:(96, 51) TS2304: Cannot find name 'Promise'.
    Error:(96, 147) TS2304: Cannot find name 'Promise'.
    Error:(133, 90) TS2304: Cannot find name 'Promise'.
    Error:(171, 81) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\change_detection\parser\locals.d.ts
    Error:(3, 14) TS2304: Cannot find name 'Map'.
    Error:(4, 42) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\debug\debug_node.d.ts
    Error:(14, 13) TS2304: Cannot find name 'Map'.
    Error:(24, 17) TS2304: Cannot find name 'Map'.
    Error:(25, 17) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\di\provider.d.ts
    Error:(436, 103) TS2304: Cannot find name 'Map'.
    Error:(436, 135) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\linker\compiler.d.ts
    Error:(12, 50) TS2304: Cannot find name 'Promise'.
    Error:(16, 41) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\linker\dynamic_component_loader.d.ts
    Error:(108, 136) TS2304: Cannot find name 'Promise'.
    Error:(156, 150) TS2304: Cannot find name 'Promise'.
    Error:(197, 128) TS2304: Cannot find name 'Promise'.
    Error:(203, 127) TS2304: Cannot find name 'Promise'.
    Error:(204, 141) TS2304: Cannot find name 'Promise'.
    Error:(205, 119) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\render\api.d.ts
    Error:(13, 13) TS2304: Cannot find name 'Map'.
    Error:(14, 84) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\async.d.ts
    Error:(27, 33) TS2304: Cannot find name 'Promise'.
    Error:(28, 45) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\collection.d.ts
    Error:(1, 25) TS2304: Cannot find name 'MapConstructor'.
    Error:(2, 25) TS2304: Cannot find name 'SetConstructor'.
    Error:(4, 27) TS2304: Cannot find name 'Map'.
    Error:(4, 39) TS2304: Cannot find name 'Map'.
    Error:(7, 9) TS2304: Cannot find name 'Map'.
    Error:(8, 30) TS2304: Cannot find name 'Map'.
    Error:(11, 43) TS2304: Cannot find name 'Map'.
    Error:(12, 27) TS2304: Cannot find name 'Map'.
    Error:(14, 23) TS2304: Cannot find name 'Map'.
    Error:(15, 25) TS2304: Cannot find name 'Map'.
    Error:(95, 41) TS2304: Cannot find name 'Set'.
    Error:(96, 22) TS2304: Cannot find name 'Set'.
    Error:(97, 25) TS2304: Cannot find name 'Set'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\lang.d.ts
    Error:(13, 17) TS2304: Cannot find name 'Map'.
    Error:(14, 17) TS2304: Cannot find name 'Set'.
    Error:(78, 59) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\promise.d.ts
    Error:(2, 14) TS2304: Cannot find name 'Promise'.
    Error:(7, 32) TS2304: Cannot find name 'Promise'.
    Error:(8, 38) TS2304: Cannot find name 'Promise'.
    Error:(9, 35) TS2304: Cannot find name 'Promise'.
    Error:(9, 93) TS2304: Cannot find name 'Promise'.
    Error:(10, 34) TS2304: Cannot find name 'Promise'.
    Error:(11, 32) TS2304: Cannot find name 'Promise'.
    Error:(11, 149) TS2304: Cannot find name 'Promise'.
    Error:(12, 43) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\http\headers.d.ts
    Error:(43, 59) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\http\url_search_params.d.ts
    Error:(11, 16) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\platform\browser\browser_adapter.d.ts
    Error:(75, 33) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\platform\dom\dom_adapter.d.ts
    Error:(85, 42) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\CoreOperators.d.ts
    Error:(35, 67) TS2304: Cannot find name 'Promise'.
    Error:(50, 66) TS2304: Cannot find name 'Promise'.
    Error:(89, 67) TS2304: Cannot find name 'Promise'.
    Error:(94, 38) TS2304: Cannot find name 'Promise'.
    Error:(94, 50) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\Observable.d.ts
    Error:(46, 62) TS2304: Cannot find name 'Promise'.
    Error:(47, 42) TS2304: Cannot find name 'Iterator'.
    Error:(103, 74) TS2304: Cannot find name 'Promise'.
    Error:(103, 84) TS2304: Cannot find name 'Promise'.
    Error:(143, 66) TS2304: Cannot find name 'Promise'.
    Error:(158, 65) TS2304: Cannot find name 'Promise'.
    Error:(201, 66) TS2304: Cannot find name 'Promise'.
    Error:(206, 38) TS2304: Cannot find name 'Promise'.
    Error:(206, 50) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\ForkJoinObservable.d.ts
    Error:(6, 50) TS2304: Cannot find name 'Promise'.
    Error:(7, 58) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\FromObservable.d.ts
    Error:(7, 38) TS2304: Cannot find name 'Promise'.
    Error:(7, 51) TS2304: Cannot find name 'Iterator'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\PromiseObservable.d.ts
    Error:(9, 31) TS2304: Cannot find name 'Promise'.
    Error:(10, 26) TS2304: Cannot find name 'Promise'.
Stav Alfi
fonte
1
Instale a versão mais recente do TypeScript for Visual Studio 2015 .
mylesk

Respostas:

177

Angular 5 com texto datilografado ^ 2.0.0

Isso também deve funcionar da mesma maneira nas versões anteriores do Angular 2+.

Para que isso funcione com o texto datilografado 2.0.0, fiz o seguinte.

npm install --save-dev @types/core-js

tsconfig.json

 "compilerOptions": {
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "mapRoot": "./",
    "module": "es6",
    "moduleResolution": "node",
    "noEmitOnError": true,
    "noImplicitAny": false,
    "outDir": "../dist/out-tsc",
    "sourceMap": true,
    "target": "es5",
    "typeRoots": [
      "../node_modules/@types"
    ],
    "types": [
      "core-js"
    ]
  }

Mais sobre @types com texto datilografado 2.0.0.

  1. https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/
  2. https://www.npmjs.com/~types

Exemplo de instalação:

npm install --save-dev @types/core-js

Erros de identificador duplicado

Isso é mais provável porque as digitações ecmascript duplicadas 6 já estão sendo importadas de algum outro lugar, provavelmente um antigo es6-shim.

Verifique typings.d.tsnovamente se não há referências a es6. Remova qualquer referência es6do seu diretório de digitações, se você tiver uma.

Por exemplo:

Isso entrará em conflito com types:['core-js']em typings.json.

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160602141332" 
    // es6-shim will also conflict
  }
}

Incluindo core-jsna matriz de tipos emtsconfig.json deve ser o único local de onde é importada.

CLI angular 1.0.0-beta.30

Se você estiver usando o Angular-CLI, remova a matriz lib no typings.json. Isso parece entrar em conflito com a declaração de core-js nos tipos.

"compilerOptions" : {
  ...
  // removed "lib": ["es6", dom"],
  ...
},
"types" : ["core-js"]

Usuários Webstorm / Intellij usando a CLI Angular

Verifique se o compilador datilografado interno está desabilitado. Isso entrará em conflito com a CLI. Para compilar seu texto datilografado com a CLI, você pode definir uma ng serveconfiguração.

insira a descrição da imagem aqui

Tsconfig compilerOptions lib vs types

Se você preferir não instalar as definições principais do tipo js, ​​existem algumas bibliotecas es6 incluídas no typescript. Esses são usados ​​através da lib: []propriedade em tsconfig.

Veja aqui por exemplo: https://www.typescriptlang.org/docs/handbook/compiler-options.html

Nota: Se --lib não for especificado, uma biblioteca padrão será injetada. A biblioteca padrão injetada é: ► Para --target ES5: DOM, ES5, ScriptHost ► Para --target ES6: DOM, ES6, DOM.Iterable, ScriptHost

tl; dr

Resposta curta "lib": [ "es6", "dom" ]ou "types": ["core-js"]pode ser usada para resolver can't find Promise,Map, Set and Iterator. O uso de ambos causará erros de identificador duplicados.

Kris Hollenbeck
fonte
1
Obrigado pela atualização e pela boa resposta. Aceitei sua resposta porque as pessoas ainda vêm aqui para que esse erro desapareça até agora. Existe alguma chance de você atualizar sua resposta para RC 5? Estou enfrentando esse erro e, seguindo sua resposta, consegui usar a promessa, mas agora há muitos erros no arquivo node_modules \ @types \ es6-shim \ index.d.ts: "Identificador duplicado 'PropertyKey'." nas linhas: 6,10,248,283,290 e assim por diante; .. também erro em: C: \ Users \ armyTik \ Desktop \ rc5 \ store-app-02 \ node_modules \ typescript \ lib \ lib.es2015.core.d.ts: 17 : 13 Identificador duplicado 'PropertyKey'.
Stav Alfi
Eu atualizei minha resposta. Espero que ajude a esclarecer um pouco as coisas. Isso deve ser o mesmo para RC5 e RC4, acredito.
Kris Hollenbeck
Também mudei para refletir apenas core-js, por isso espero que seja menos confuso. core-js e es6 são para declarações de tipo específicas do es6. Eu prefiro core-js, pois parece cobrir mais do que o es6-shim.
Kris Hollenbeck
Obrigado pela atualização. Desta vez não tive sorte. Atualizei meus erros atuais.
19416 Stav Alfi
2
Provavelmente, lib é a melhor solução. github.com/angular/angular/blob/…
Alex
75

Eu também tenho o mesmo problema - "Promise não encontrado" - quando o código deseja criar um objeto Promise.

Tentei alguma solução encontrada no stackoverflow, incluindo a solução para remover System.config ({...}) para formar system.js e incluí-la no index.html.

Finalmente eu resolvi o problema. O problema é que, em index.html, es6-shim.min.js está incluído. No entanto, em tsconfig.json, a propriedade "target" em "compilerOptions" possui o valor de "es5". Depois que eu mudei para "es6", o erro desapareceu.

Daniel C. Deng
fonte
2
Este foi o problema para mim também. Alguém sabe por que isso causaria esse erro?
perfil completo de Nick Brady
Fixa também erros que recebi no IntelliJ IDEA / WebStorm
bentolor
5
Mas o código js precisa ser transpilado para o es5, pois nem todos os navegadores estão prontos para o es6. Alguém tem problemas es6 em diferentes navegadores. Thankx!
bmnepali
funciona para mim no angular2.1.0. compilador 2.1.0 núcleo 2.1.0 common2.1.0 rxjs5.0.0-beta.12 platform-browser2.1.0
farhad goodarzi 31/16
Obrigado! Você me salvou muito tempo
Cristian Traìna
63

Angular 2 Final

- suporte es5 (funciona perfeitamente com o TS 2.0.0 +)

Por atualização es6-shimnão é suportada agora, se você tiver as duas tipografias instaladas juntas es6-shime core-jsjuntas. Remova a es6-shimdigitação mencionando em tsconfig.json. Agora você pode consultar abaixo core-jsdigitando para obter es5suporte dentromain.ts

///<reference path="./../typings/globals/core-js/index.d.ts"/>

tsconfig.json

exclude: [
   "node_modules", //<-- this would be needed in case of VS2015
   "node_modules/@typings",
   "typings"
]

- es6 suppport

Você só precisa definir a "target"propriedade como es6, então tudo irá desaparecer. E o código transpilado estará em es6formato.

Pankaj Parkar
fonte
Muito obrigado. Não tive chance de descobrir isso sozinho.
Stav Alfi
@StavAlfi np .. isso acontece .. Fico feliz em ajudá-lo .. Obrigado :)
Pankaj Parkar
Com beta.7, ele deve ser instalado se você usar a configuração do projeto no tutorial de início rápido. Qual beta do Angular você usa? Eu confirmo a mudança de quebra com angular 2.0.0 beta.7 #
Marc Marc
1
O package.json no tutorial de início rápido suporta a versão real do angular 2. Se você copiar o package.json. tscconfig.json e typings.json no diretório raiz do projeto e chame npm -install
Marc
3
@PankajParkar 2.0.0-rc.1. Eu comecei a usar o Angular apenas alguns dias atrás. Trabalhei nos documentos de introdução [aqui] (). No package.jsonque colocar "angular2-in-memory-web-api": "0.0.7"eo resto das coisas angular vem de "@angular/<module>": "2.0.0-rc.1"onde <module>é common, compiler, core, http, platform-browser, platform-browser-dynamic, router, router-deprecatede upgrade.
Hector
42

Atualizado a partir do angular-2.0.0-rc.4

TLDR;

  1. Transpilar para es6

    • o erro desaparece (com algumas dicas).
  2. Transpilar para es5

    • instalar digitações
    • instale o calço es6
    • verifique se ele compila com o seu código.
    • erro desaparece.

Para os leitores:

Opção 1: Transpilar para es6 ou es2015

tsconfig.json:

{
  "compilerOptions": {
    "target": "es6",
    "module": "system",
    "moduleResolution": "node",
     ...
  },
"exclude": [
    "node_modules",
    "jspm_packages"
  ]
}

Lembre-se de que o uglifyjs não suporta es6 no momento . Isso pode afetar a criação de pacotes de produção.

Opção 2: transpile para o es5, instale as tipagens e instale o es6-shim:

tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
     ...
  },
  "exclude": [
    "node_modules",
    "jspm_packages"
  ]
}

Instale as tipagens e instale o es6-shim:

npm install typings --saveDev
typings install dt~es6-shim --global --save

Se você seguir esta rota, precisará garantir que o compilador de texto datilografado possa encontrar o arquivo .d.ts.

Você tem duas opções:

uma. Verifique se o seu tsconfig.json está no mesmo nível da pasta de digitações.

b. Inclua uma referência no seu arquivo main.ts onde seu aplicativo angular2 é inicializado.

Opção A: Verifique se o seu tsconfig.json está no mesmo nível da pasta de digitações.

Nota: NÃO use o sinalizador de exclusão para excluir a pasta de digitações.

project
|-- src
|-- node_modules
|-- package.json
|-- typings
|-- tsconfig.json

Opção B: Referência no arquivo principal antes da inicialização (não faça isso):

Conforme mostrado em outras respostas, esse arquivo não é mais incluído pelo Angular

main.ts:

/// <reference path="../../typings/globals/es6-shim/index.d.ts" />
Nick Acosta
fonte
2
A opção 1 funciona perfeitamente bem para RC4. Certifique-se de remover core-js e outras fontes que fornecem Promise, Map, etc. para evitar conflitos de espaço para nome.
Wtfzn
1
Obrigado, 1 trabalhou. Precisa de core-js ou es6-shim (não ambos). E então inclua ./typings/index.d.ts no seu processo de compilação ts.
K3a 31/07
1
--saveDevnão funciona por enquanto. --save-devfaz.
George Sovetov
1
Não deve typingsser instalado globalmente?
22817 George Sovetov
8

Isto é o que funcionou para mim.

verifique se existe um typings.jsonarquivo,

Parece algo assim,

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160317120654",
    "jasmine": "registry:dt/jasmine#2.2.0+20160505161446",
    "node": "registry:dt/node#6.0.0+20160613154055"
  }
}

Instale o pacote de digitações globalmente.

sudo npm install -g typings

depois de instalar as digitações , execute

typings install

depois reinicie o servidor.

Tudo é muito
fonte
6

Eu tive um problema semelhante em que não estava reconhecendo o método Promise.resolve () . Eu mudei "alvo" valor de ES5 para ES6 em tsconfig.json . Isso resolveu o problema.

Espero que isto ajude.

Nandakumar Purohit
fonte
Sim, isso me ajudou com certeza - alterou o valor "target" de ES5 para ES6 no tsconfig.json.
Greg Trevellick
5

Como o Angular 2 foi para RC 0, /angular2/typings/browser.d.ts não faz mais parte da distribuição do Angular 2. O arquivo pode ser instalado separadamente.

A partir daqui: https://github.com/angular/angular/issues/8513, existem algumas opções. O que funcionou para mim foi:

typings install es6-shim --ambient --save

// In your app.ts
/// <reference path="typings/browser.d.ts" />
James
fonte
1
Obrigado por isso, mas o comando para os tipos 1.0+ é: tipos de instalação install dt ~ es6-shim --save --global ( github.com/typings/typings/issues/517 ) e, em seguida, use /// <reference path = " typings / es6-shim / es6-shim.d.ts "/>
Simon Trewhella
4

Eu consegui corrigir esse problema sem precisar adicionar nenhuma referência de barra tripla ao arquivo de inicialização TS, alterar para o ES6 (que traz vários problemas, como disse o @DatBoi ) atualizar o VS2015 NodeJSe / ou compilar NPMcompilações ou instalar typingsglobalmente.

Aqui está o que eu fiz em algumas etapas:

  • adicionado typingsnopackage.json arquivo .
  • adicionado um scriptbloco no package.jsonarquivo para executar / atualizartypings após cada ação do NPM.
  • adicionou um typings.jsonarquivo na pasta raiz do projeto contendo uma referência a core-js, que é um dos melhores pacotes shim / polyfill existentes no momento para corrigir problemas do ES5 / ES6.

Veja como o package.jsonarquivo deve ficar (apenas linhas relevantes):

{
  "version": "1.0.0",
  "name": "YourProject",
  "private": true,
  "dependencies": {
    ...
    "typings": "^1.3.2",
    ...
  },
  "devDependencies": {
    ...
  },
  "scripts": {
      "postinstall": "typings install"
  }
}

E aqui está o typings.jsonarquivo:

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160602141332",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160621231320"
  }
}

( Jasminee Nodenão são obrigatórios, mas sugiro mantê-los caso seja necessário no futuro).

Essa correção está funcionando bem com o Angular2 RC1 a RC4, que é o que eu precisava, mas acho que também corrigirá problemas semelhantes com outros pacotes de bibliotecas habilitados para ES6.

AFAIK, acho que essa é a maneira mais limpa possível de corrigi-la sem alterar as configurações padrão do VS2015.

Para mais informações e uma análise detalhada do problema, sugiro também que leia este post no meu blog.

Darkseal
fonte
3

Se estiver usando o Angular2 RC1 com as digitações v1.0 +, use o comando:

typings install dt~core-js --save --global

para instalar a definição core-js e referenciar seu índice global em seu main.ts:

/// <reference path="../../../typings/index.d.ts" />

Se estiver usando es6-shim ou alguma outra biblioteca de shim, instale as tipagens para isso.

Consulte https://github.com/typings/typings/issues/517

Simon Trewhella
fonte
2

Percebi esses problemas aparecendo após a atualização do Angular 5 para o Angular 6. Consegui corrigir isso fazendo o seguinte no VS2017:

  • Verifique se o SDK do TypeScript foi instalado (por meio do Instalador do Visual Studio) para minha versão específica do TypeScript, 2.9
  • Assegure-se de que a propriedade do projeto Module System esteja configurada para corresponder à do meu tsconfig.json: ES2015. Isso geralmente é sincronizado automaticamente se o arquivo tsconfig estiver na raiz do projeto. No entanto, como eu estava usando o modelo VS Angular, ele coloca esses arquivos em uma subpasta "ClientApp" e a propriedade do projeto Module System não foi definida.

Propriedades do projeto VS2017

tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "lib": [
      "es2017",
      "dom"
    ],
    "module": "es2015",
    "baseUrl": "./"
  }
}
dasch88
fonte
1

Eu tive um mesmo problema ao criar um objeto de promessa dentro da minha classe. A alteração do nome do destino para "es5" de "es6" resolveu meu problema.

CharithW
fonte
1

Outra solução possível é reinstalar as tipagens:
Isso funciona para mim para"angular2": "2.0.0-beta.15"

  1. npm clean cache
  2. npm install
  3. npm install -g typings
  4. Excluir typingsdiretório do projeto (os módulos de tipografia Directory wwhere estão instalados)
  5. typings install
  6. npm run
Vicky Gonsalves
fonte
1

Outra boa solução. Você precisa criar um arquivo typings.json no diretório raiz do projeto com o conteúdo:

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160725163759",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160909174046"
  }
}

Em seguida, instale o pacote de digitação global ou local, se não estiver instalado (eu sou o global):

sudo npm install --global typings

No diretório raiz do projeto, execute o comando:

typings install

Depois que esse problema for resolvido. Não é necessário alterar o destino tsconfig para es6 ou es7. Seu aplicativo da web não suporta depois disso uma versão antiga dos navegadores.

Alexey Nikitenko
fonte
1

Se você veio aqui porque vê esses erros no Visual Studio 2017, tem um problema diferente como acima, se conseguir compilar. Isso ocorre porque o serviço de idioma não escolhe seu tsconfig.json.

https://developercommunity.visualstudio.com/content/problem/208941/vs-156-ignores-tsconfigjson-and-typescriptcompileb.html

Você deve definir a Ação de compilação do seu tsconfig.json como "Conteúdo" (clique com o botão direito do mouse -> Propriedades), para que o VS a escolha.

Pieter Van Winckel
fonte
0

Eu encontrei a referência no boot.ts não era o caminho correto. Atualizando esse caminho para /// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />os erros do Promise.

dawesome
fonte
0

Estou treinando com um tutorial angular2 (herói).
Após instalar @ types / core-js comentado nas respostas, recebi o erro "Identificador duplicado".
No meu caso, foi resolvido como remover a linha da lib no tsconfig.json.

// "lib": ["es2015", "dom"]

coffeenjava
fonte
-1

minha estrutura de arquivos é a seguinte:

project
 |--node-modules
 |   |--angular2
 |   |   |--typings
 |   |   |   |--browser.d.ts
 |--src
 |--app.ts

cole o abaixo na parte superior do seu app.ts e seu problema foi resolvido

/// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />
Matey Aryeh
fonte
Alterar a entrada TARGET para apontar para ES6 no tsconfig.json corrigiu esse problema para mim, como apontado em algumas das respostas acima.
TheCopyPaster 11/0318
-1

Eu peguei o mesmo problema e consegui encontrá-lo no github https://github.com/angular/angular-cli/issues/1901 , que afirmava que era um problema [email protected].

O downgrade de texto datilografado para 2.0.0global e localmente me ajudou a resolvê-lo.

Globalmente:

npm uninstall typescript -g
npm cache clean
npm install typescript@2.0.0 -g

Localmente: acesse a pasta do projeto criada por ng novo

npm uninstall typescript
npm cache clean
npm install typescript@2.0.0

Também alterei a versão do typescript dentro do package.json de ^2.0.0para 2.0.0, mas não funcionou até fazer o downgrade da instalação do typescript local.

carro aquático
fonte
Por que as pessoas estão votando contra isso, eu gostaria de saber por que essa é uma má idéia. Se o texto datilografado é uma linguagem transpilada e é convertida em javascript, é tão seguro quanto o seu navegador, portanto não há riscos, certo?
User3505901