2016-10-14 3 views
1

typescript (2.0.0)을 사용하는 angular2 애플리케이션 (2.0.0)이 있습니다. 그것은 크롬과 가장자리에서 잘 작동IE6에서 Angular2 앱이 작동하지 않고 ES5로 컴파일 오류가 발생했습니다.

"target": "es6", 

하지만, IE11에서 작동하지 않습니다 : 내 tsconfig에서 나는이 라인 ES6을 컴파일합니다.

나는 ES5를 대상을 변경하지만 나는 다음과 같은 몇 가지 컴파일 오류를 얻을 :

ClientApp\app\services\tenant.service.ts(9,16): error TS2304: Cannot find name 'Promise'. 
ClientApp\app\components\manage\users.component.ts(70,31): error TS2339: Property 'json' does not exist on type '{}'. 

이 출력을 생성하고 실행에있다 않습니다는 IE11과 다른 브라우저에서 작동하는 것 같다을 (하지만 테스트하지 않았습니다 모두). 나는 아직도 컴파일 오류를 좋아하지 않는다.

나는 core-js가있다. 나는이 문제에 대한 해결책이라고 생각했다.

5 점 또는 6 점을 대상으로해야합니까?

IE에서 es6을 사용해야합니까? 제가 빠진 심이 있습니까?

어떻게하면 es5를 사용하여 컴파일 오류를 제거 할 수 있습니까? 당신이 라인 코드를 붙여 주시기 바랍니다 수

{ 
    "compileOnSave": true, 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "skipLibCheck": true 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

답변

0

난 당신이 두 번째의 경우 타이프 라이터 정의 https://github.com/borisyankov/DefinitelyTyped/blob/master/es6-promise/es6-promise.d.ts

를 가져해야한다고 생각 첫 번째 오류 : 여기

내 tsconfig.json입니까?

+0

저는 es6을 사용하고있었습니다. es5로 변경했을 때 많은 오류가 있습니다. 이것은 단지 몇 가지 예입니다. 다음과 같이 TS 정의를 추가했습니다. /// 여전히 오류가 발생합니다. . –

+0

이러한 유형 정의를 사용하면 약속에서 오류가 발생합니까? /// . 이 TS 정의를 가져온 후에 적어도 Promise 오류는 사라져야합니다. – dokkis

+0

내가 es5를 대상으로한다는 것을 알지만 promise를 사용하려고하면 node_modules/typescript/lib/lib.es2015.promise.d.ts에서 가져옵니다. – dokkis