각도 : 약속,지도, 집합 및 반복자를 찾을 수 없습니다


176

각도를 설치 한 후, 타이프 스크립트 컴파일러 킵은 발견하지에 대한 몇 가지 오류를 받고 Promise, Map, SetIterator.

지금까지 나는 그것들을 무시했지만 지금 Promise은 코드가 작동하도록 해야 합니다.

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

오류 :

................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'.

1
최신 버전의 TypeScript for Visual Studio 2015를 설치하십시오 .
mylesk

답변:


177

타입 스크립트가있는 각도 5 ^ 2.0.0

이전 버전의 Angular 2 이상에서도 동일하게 작동합니다.

이것을 typescript 2.0.0과 함께 사용하려면 다음을 수행하십시오.

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"
    ]
  }

typescript 2.0.0을 사용한 @types에 대한 추가 정보.

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

설치 예 :

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

식별자 오류 중복

중복 된 ecmascript 6 타이핑을 이미 다른 es6-shim 어딘가에서 가져 오기 때문에 가능합니다.

typings.d.ts에 대한 참조가 없는지 다시 확인하십시오 es6. es6타이핑 디렉토리에서 참조를 제거하십시오 (있는 경우).

예를 들어 :

이는 types:['core-js']typings.json 과 충돌 합니다.

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

core-js유형 배열을 포함하여 tsconfig.json가져 오는 유일한 장소 여야합니다.

앵귤러 CLI 1.0.0-beta.30

Angular-CLI를 사용하는 경우에서 lib 배열을 제거하십시오 typings.json. 이것은 유형에서 core-js를 선언하는 것과 충돌하는 것 같습니다.

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

Angular CLI를 사용하는 Webstorm / Intellij 사용자

내장 타입 스크립트 컴파일러가 비활성화되어 있는지 확인하십시오. CLI와 충돌합니다. CLI를 사용하여 타이프 스크립트를 컴파일하려면 ng serve구성을 설정할 수 있습니다.

여기에 이미지 설명을 입력하십시오

tsconfig 컴파일러 옵션 lib 대 유형

핵심 js 유형 정의를 설치하지 않으려는 경우 typescript에 포함 된 일부 es6 라이브러리가 있습니다. 그것들은 lib: []tsconfig 의 속성을 통해 사용됩니다 .

예를 들어 여기를 참조하십시오 : https://www.typescriptlang.org/docs/handbook/compiler-options.html

참고 : --lib를 지정하지 않으면 기본 라이브러리가 주입됩니다. 주입 된 기본 라이브러리는 다음과 같습니다. ► --target ES5의 경우 : DOM, ES5, ScriptHost ► --target ES6의 경우 : DOM, ES6, DOM.Iterable, ScriptHost

tl; dr

짧은 대답 "lib": [ "es6", "dom" ]또는 "types": ["core-js"]해결하는 데 사용할 수 있습니다 can't find Promise,Map, Set and Iterator. 그러나 둘 다 사용하면 중복 식별자 오류가 발생합니다.


1
업데이트 및 좋은 답변 주셔서 감사합니다. 지금까지 사람들 이이 오류를 해결하기 위해 여기에오고 있기 때문에 귀하의 답변을 수락했습니다. RC 5로 답을 업데이트 할 기회가 있습니까? 이 오류에 직면하고 있으며 귀하의 답변에 따라 promise를 사용할 수 있었지만 node_modules \ @types \ es6-shim \ index.d.ts 파일의 많은 오류가 있습니다. "중복 식별자 'PropertyKey'." 줄 : 6,10,248,283,290 등; ..도 오류 : C : \ Users \ armyTik \ Desktop \ rc5 \ store-app-02 \ node_modules \ typescript \ lib \ lib.es2015.core.d.ts : 17 : 13 중복 식별자 'PropertyKey'.
Stav Alfi

답변을 업데이트했습니다. 바라건대 그것은 조금 정리하는 데 도움이됩니다. 이것은 내가 믿는 RC5와 RC4 모두 동일해야합니다.
Kris Hollenbeck '

또한 core-js 만 반영하도록 변경했기 때문에 혼란스럽지 않습니다. core-js 및 es6은 모두 es6 특정 유형 선언에 사용됩니다. es6-shim보다 더 많은 것을 다루는 것처럼 core-js를 선호합니다.
Kris Hollenbeck '

업데이트 해 주셔서 감사합니다. 이번에는 운이 없었습니다. 현재 오류를 업데이트했습니다.
Stav Alfi

2
아마도 lib가 더 나은 솔루션 일 것입니다. github.com/angular/angular/blob/…
Alex

75

코드에서 Promise 개체를 만들려고 할 때도 같은 문제 ( "Promise not found")가 있습니다.

System.js (System.js)를 작성하여 index.html에 포함시키는 System.config ({...})를 포함하여 stackoverflow에서 찾은 솔루션을 시도했습니다.

마침내 나는 문제를 해결했다. 문제는 index.html에 es6-shim.min.js가 포함되어 있다는 것입니다. 그러나 tsconfig.json에서 "compilerOptions"아래의 "target"특성 값은 "es5"입니다. "es6"으로 변경하면 오류가 사라집니다.


2
이것은 나에게도 문제였습니다. 왜 이것이 오류가 발생하는지 알고 있습니까?
Nick Brady

IntelliJ IDEA / WebStorm
bentolor

5
그러나 모든 브라우저가 es6을 사용할 수있는 것은 아니기 때문에 js 코드를 es5로 변환해야합니다. 다른 브라우저에서 es6 문제가있는 사람이 있습니다. 고마워!
bmnepali

angular2.1.0에서 나를 위해 일합니다. 컴파일러 2.1.0 코어 2.1.0 common2.1.0 rxjs5.0.0-beta.12 플랫폼 브라우저 2.1.0
farhad goodarzi

감사합니다! 당신은 나에게 시간을 많이 저장
크리스티안 Traìna

63

앵귤러 2 파이널

-es5 지원 (TS 2.0.0 이상에서 완벽하게 작동)

갱신 당 es6-shim이 모두 typings가 함께 설치되어있는 경우, 현재 지원되지 않습니다 es6-shimcore-js함께. es6-shimtsconfig.json에서 언급하여 입력을 제거하십시오 . 내부 지원 core-jses5위해 아래 입력을 참조 할 수 있습니다.main.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 지원

"target"속성을 로 설정 es6하면 모든 오류가 사라집니다. 그리고 변환 된 코드는 es6형식이됩니다.


대단히 감사합니다. 나는 그것을 스스로 찾을 기회가 없었다.
Stav Alfi 2019

@StavAlfi np .. 그 일이 .. 도와 드리겠습니다 .. 감사합니다 :)
Pankaj Parkar

베타 7에서는 빠른 시작 자습서에서 프로젝트 설정을 사용하는 경우 설치해야합니다. Angular의 어떤 베타 버전을 사용하십니까? 나는 angular 2.0.0 beta.7
Marc

1
빠른 시작 학습서의 package.json은 실제 버전의 각도 2를 지원합니다. package.json을 복사하는 경우. tscconfig.json 및 typings.json을 프로젝트 루트 디렉토리에 입력하고 npm -install project setup을 호출하십시오.
Marc

3
@PankajParkar 2.0.0-rc.1. 며칠 전에 Angular를 사용하기 시작했습니다. 시작하는 문서 [here] ()를 통해 일했습니다. 에서 package.json그들은 넣어 "angular2-in-memory-web-api": "0.0.7"및 각 물건의 나머지 부분은 온다에서 "@angular/<module>": "2.0.0-rc.1"<module>이다 common, compiler, core, http, platform-browser, platform-browser-dynamic, router, router-deprecatedupgrade.
헥터

42

angular-2.0.0-rc.4에서 업데이트되었습니다.

TLDR;

  1. es6로 변환

    • 오류가 사라집니다 (일부 문제가 있음).
  2. es5로 변환

    • 타이핑 설치
    • es6 심을 설치하십시오
    • 코드로 컴파일하십시오.
    • 오류가 사라집니다.

독자들을 위해 :

옵션 1 : es6 또는 es2015로 변환

tsconfig.json :

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

마음에 계속 순간에 ES6 지원하지 않습니다 uglifyjs . 이는 프로덕션 번들 작성에 영향을 줄 수 있습니다.

옵션 2 : es5로 변환하고 타이핑을 설치 한 다음 es6-shim을 설치하십시오.

tsconfig.json :

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

타이핑을 설치 한 다음 es6-shim을 설치하십시오.

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

이 경로를 사용하면 형식 스크립트 컴파일러가 .d.ts 파일을 찾을 수 있는지 확인해야합니다.

두 가지 옵션이 있습니다.

ㅏ. tsconfig.json이 입력 폴더와 동일한 레벨인지 확인하십시오.

비. angular2 애플리케이션이 부트 스트랩되는 main.ts 파일에 참조를 포함하십시오.

옵션 A : tsconfig.json이 입력 폴더와 동일한 레벨인지 확인하십시오.

참고 : 타이핑 폴더를 제외시키기 위해 제외 플래그를 사용하지 마십시오.

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

옵션 B : 부트 스트랩 이전의 주 파일 참조 (이 작업을 수행하지 마십시오) :

다른 답변에서 볼 수 있듯이이 파일은 더 이상 Angular에 포함되지 않습니다

main.ts :

/// <reference path="../../typings/globals/es6-shim/index.d.ts" />

2
옵션 1은 RC4에 완벽하게 작동합니다. 네임 스페이스 충돌을 피하기 위해 Promise, Map 등을 제공하는 core-js 및 기타 유형을 제거해야합니다.
wtfzn

1
감사합니다. core-js 또는 es6-shim (둘다는 아님)이 필요합니다. 그런 다음 ts 컴파일 프로세스에 ./typings/index.d.ts를 포함하십시오.
k3a

1
--saveDev지금은 작동하지 않습니다. --save-dev그렇습니다.
George Sovetov

1
typings전 세계적으로 설치 해서는 안 됩니까?
George Sovetov


8

이것이 나를 위해 일한 것입니다.

typings.json파일 이 있는지 확인 하고

이렇게 생겼어요

{
  "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"
  }
}

타이핑 패키지를 전체적으로 설치하십시오.

sudo npm install -g typings

설치 한 후 typings를 실행

typings install

그런 다음 서버를 다시 시작하십시오.


6

Promise.resolve () 메서드를 인식하지 못하는 비슷한 문제가있었습니다 . 나는 변경 "대상" 에 ES5에서 값을 ES6tsconfig.json . 문제가 해결되었습니다.

도움이 되었기를 바랍니다.


tsconfig.json에서 "target"값을 ES5에서 ES6으로 변경했습니다.
Greg Trevellick

5

Angular 2가 RC 0으로 이동 했으므로 /angular2/typings/browser.d.ts는 더 이상 Angular 2 분포의 일부가 아닙니다. 파일을 별도로 설치할 수 있습니다.

여기에서 https://github.com/angular/angular/issues/8513 옵션이 있습니다. 나를 위해 일한 사람은 다음과 같습니다.

typings install es6-shim --ambient --save

// In your app.ts
/// <reference path="typings/browser.d.ts" />

1
고맙지 만 타이핑 1.0 이상 명령은 다음과 같습니다. typings install dt ~ es6-shim --save --global ( github.com/typings/typings/issues/517 ) 그리고 /// <reference path = " typings / es6-shim / es6-shim.d.ts "/>
Simon Trewhella 2016 년

4

TS 부트 스트랩 파일에 트리플 슬래시 참조를 추가하거나 ES6로 변경하지 않고도이 문제를 해결할 수 있었습니다 (@DatBoi가 말한 것처럼 많은 문제가 발생합니다 ) VS2015 NodeJS및 / 또는 NPM번들 빌드를 업데이트 하거나 typings전 세계적으로 설치하십시오 .

몇 가지 단계로 수행 한 작업은 다음과 같습니다.

  • typings프로젝트 package.json파일에 추가 되었습니다 .
  • 각 NPM 작업 후 실행 / 업데이트하기 위해 파일에 script블록을 추가했습니다 .package.jsontypings
  • 에 대한 typings.json참조가 포함 된 프로젝트의 루트 폴더에 파일을 추가했습니다.이 파일 core-js은 현재 ES5 / ES6 문제를 해결하기위한 최고의 shim / polyfill 패키지 중 하나입니다.

여기에 방법 package.json파일 (에만 관련 라인)과 같아야합니다 :

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

그리고 여기 typings.json파일이 있습니다 :

{
  "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"
  }
}

( JasmineNode필요,하지만 난 당신이 미래에 필요합니다 경우에 보관하는 것이 좋습니다되지 않습니다).

이 수정은 내가 필요한 Angular2 RC1에서 RC4까지 잘 작동하지만 다른 ES6 가능 라이브러리 패키지에서도 비슷한 문제를 해결할 것이라고 생각합니다.

AFAIK, 이것이 VS2015 기본 설정을 엉망으로 만들지 않고 가능한 가장 깨끗한 방법이라고 생각합니다.

자세한 정보와 문제에 대한 자세한 분석을 보려면 내 블로그 에서이 게시물읽어보십시오 .


3

타이핑 v1.0 +와 함께 Angular2 RC1을 사용하는 경우 다음 명령을 사용하십시오.

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

핵심 JS 정의를 설치 한 다음 main.ts에서 글로벌 색인을 참조하십시오.

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

es6-shim 또는 다른 shim 라이브러리를 사용하는 경우 대신 타이핑을 설치하십시오

https://github.com/typings/typings/issues/517참조하십시오.


2

Angular 5에서 Angular 6으로 업그레이드 한 후 이러한 문제가 나타나는 것을 알았습니다 .VS2017에서 다음을 수행 하여이 문제를 해결할 수 있습니다.

  • 특정 버전의 TypeScript 2.9에 대해 VisualScript 설치 관리자를 통해 TypeScript SDK가 설치되어 있는지 확인하십시오.
  • 모듈 시스템 프로젝트 특성이 내 tsconfig.json : ES2015의 특성과 일치하도록 설정되어 있는지 확인하십시오. tsconfig 파일이 프로젝트의 루트에있는 경우 종종 자동으로 동기화됩니다. 그러나 VS Angular 템플릿을 사용하고 있었기 때문에 이러한 파일을 "ClientApp"하위 폴더에 배치하고 모듈 시스템 프로젝트 속성이 설정되지 않았습니다.

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": "./"
  }
}

1

수업 내에서 약속 객체를 만들 때도 같은 문제가있었습니다. 대상 이름을 "es6"에서 "es5"로 변경하면 문제가 해결되었습니다.


1

또 다른 가능한 해결책은 타이핑을 다시 설치
하는 것입니다."angular2": "2.0.0-beta.15"

  1. npm clean cache
  2. npm install
  3. npm install -g typings
  4. typings프로젝트에서 디렉토리 삭제 (타이핑 모듈이 설치된 디렉토리)
  5. typings install
  6. npm run

1

또 다른 좋은 해결책. 컨텐츠가있는 프로젝트의 루트 디렉토리에 typings.json 파일을 작성해야합니다.

{
  "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"
  }
}

그런 다음 전역 또는 로컬 입력 패키지가 설치되어 있지 않은 경우 설치합니다 (전역 설치 중).

sudo npm install --global typings

프로젝트 루트 디렉토리에서 다음 명령을 실행하십시오.

typings install

그 후 문제가 해결되었습니다. tsconfig 대상을 es6 또는 es7로 변경할 필요가 없습니다. 웹 응용 프로그램은 이전 버전의 브라우저를 지원하지 않습니다.



0

boot.ts의 참조가 올바른 경로가 아니라는 것을 알았습니다. 해당 경로를 업데이트 /// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />하여 약속 오류 를 해결했습니다.


0

angular2 tutorial (hero)로 훈련하고 있습니다.
이 답변에 주석 처리 된 @ types / core-js를 설치 한 후 "중복 식별자"오류가 발생했습니다.
필자의 경우 tsconfig.json에서 lib 줄을 제거하여 해결되었습니다.

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


-1

내 파일 구조는 다음과 같습니다.

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

아래를 app.ts 상단에 붙여 넣고 문제가 해결되었습니다.

/// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />

tsconfig.json에서 ES6을 가리 키도록 TARGET 항목을 변경하면 위의 일부 응답에서 지적한 것처럼이 문제가 해결되었습니다.
TheCopyPaster

-1

동일한 문제가 발생하여 github https://github.com/angular/angular-cli/issues/1901 에서 문제가 있음을 알 수 typescript@2.0.2있습니다.

2.0.0전 세계 및 로컬로 모두 다운 그레이드 유형 스크립트를 사용 하여 문제를 해결했습니다.

전 세계적으로 :

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

로컬 : ng new에서 만든 프로젝트 폴더로 이동

npm uninstall typescript
npm cache clean
npm install typescript@2.0.0

또한에서 package.json에서 타이프의 버전을 변경 ^2.0.0하는 2.0.0,하지만 난 로컬 타이프 라이터 설치를 다운 그레이드 할 때까지 작동하지 않았다.


사람들이 왜 이것을 거부하고 있는지, 왜 이것이 나쁜 생각인지 알고 싶습니다. typescript가 번역 된 언어이고 javascript로 변환되는 경우 브라우저만큼 안전하므로 위험하지 않습니다. 맞습니까?
user3505901
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.