저는 최근에 대상이되는 ECMAScript 3 (ES3) 인 Visual Studio를 사용하여 비교적 복잡한 시뮬레이션 엔진을위한 TypeScript 프로젝트를 만들었습니다. 내 타이프 라이터 클래스에서 실제 속성을 사용하기 시작하고 싶었다 그래서 나는과 같이, ES5를 대상으로 내 프로젝트 파일을 갱신 :TypeScript - 객체가 'defineProperty'속성 또는 속성을 지원하지 않습니다.
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptRemoveComments>false</TypeScriptRemoveComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptRemoveComments>true</TypeScriptRemoveComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
</PropertyGroup>
을 지금은 IE (V10) 내 응용 프로그램을 실행할 때, 나는 런타임을 얻을 예외 : "0x800a01b6 - JavaScript 런타임 오류 : 개체가 'defineProperty'속성 또는 메서드를 지원하지 않습니다." 다른 브라우저 (예 : Firefox, Chrome)로 애플리케이션을 시작하면 예상대로 작동하지만 오류는 발생하지 않습니다. IE가 예상대로 작동하지 않는 이유를 찾지 못하는 것 같습니다. 나는 일반적으로 내 IE 브라우저가 'defineProperty'를 지원한다는 것을 확인한 웹 사이트를 발견 했으므로 현재 개발 중에는 작동하지 않는 이유에 대해 정말 당황 스럽다. VS에서 내 TypeScript 코드를 디버깅 할 수 없어 특히 중요합니다. 이견있는 사람?
IE10이 IE8 호환 모드에서 코드를 실행하고 있습니까? – serg10
당신은 그것을 못 박았습니다. 호환 모드를 변경하면 캐시가 삭제 된 것과 함께 작동 할 수 있습니다. 스크립트를 시작하고로드하는 동안 수많은 예외가 발생할 것이므로 모든 TypeScript 참조를 주석 처리 할 때까지 IE의 상태를 검사 할조차 수 없었습니다. 귀하의 회신에 감사드립니다. – 7dino7