"target": "es5"
으로 컴파일 된 TypeScript 프로젝트가 있습니다. core-js의 Set
을 사용하므로 core-js와 @ types/core-js가 프로젝트에 설치되어 있습니다. 그러나 core-js d.ts에는 Set
및 Map
(및 기타 ES6 기능)의 전역 선언이 포함되어 있으므로 TypeScript 컴파일러를 사용하면이 매개 변수를 사용할 수 있으므로 이전 브라우저에서는 작동하지 않습니다.core-js 및 대상이있는 Typescript ES5 지원되지 않는 ES6 기능 사용 가능
인터페이스에 분명히 필요하기 때문에 build에서 core.d.ts를 제외 할 수 없습니다.
컴파일러가 ES6 기능을 사용하지 않고 core-j와 해당 유형 정의를 계속 사용하지 못하게 할 방법이 있습니까?
? es6 기능을 사용하지 않으려면 해당 기능에 해당하는 유형이 필요하지 않습니다. –
'Set '을 사용하고 싶습니다. 하지만 저는 글로벌 대체품이 아니라 오히려 도서관으로 core-js를 사용하고 싶습니다. 그래서 나는 "core-js/library/fn/set"에서 coreSet으로 import *를 필요로하는 파일에 포함시켰다. 그래서 새로운 CoreSet()을 할 수 있습니다. 하지만 문제는'new Set ()'을 수행 할 수 있으며 완벽하게 컴파일 된 후 브라우저에서 실패합니다. –
Dina
나는 본다. core-js는 polyfill이므로 선언은 전역 범위를 수정하도록 설계되었습니다. 나는 set 인터페이스에 대한 자신 만의 선언을 찾거나 만들 것을 권하고 싶습니다. 매우 간단합니다. @ types/core-js 패키지를 제거하면 네임 스페이스에 혼란을 초래할 수 있습니다. –