1

TypeScript는 다른 버전의 Javascript를 전역으로 타겟팅 할 수 있습니다. 이동식 ES3, ES5 또는 ES6간에 전환 할 수 있습니다.TypeScript로 다른 Javascript 버전을 타겟팅하십시오.

IE를 지원해야하므로 ES3은 가장 낮은 공통 분모입니다.

그러나 Chrome과 같은 우수한 브라우저는 이미 ES6을 지원하며 최적화 된 상당히 작은 ES6 코드를 실행할 수 있습니다.

그래서 같은 TypeScript 소스에서 IE로 ES3를, Chrome으로 ES6을 제공하고 싶습니다.

  • (아마도 같은 *.es3*.es6 또는 무언가로) 타이프 라이터의 transpile 여러 JS 파일을 만들 수 있도록 우리가 봉사하는 버전을 선택할 수있는 방법이 있나요? (이상적으로 VS 2015에서)

  • 또는 C#에서는 런타임에 단계를 완료하기 위해 TypeScript 변환기에 액세스 할 수 있습니까?

+0

Gulp, Webpack 또는 심지어 Grunt와 같은 JS 빌드 도구를 사용하고 있습니까? 그렇다면 단순히 TS 빌드를 함수로 인수 분해하여 다른 대상으로 두 번 실행하면됩니다. – ssube

+0

@ssube - 불행히도, 이것은 이전 버전에서 업그레이드 된 C# VS 2015 프로젝트 파일입니다. VS는 VS Code와 같은 tsconfig.json 파일보다는 .csproj 파일에서 하드 코딩 된 설정을 사용하는 것처럼 보입니다. – Keith

답변

2

실제로 명령 행 (--target ES3)를 사용하여 which version you want to transpile를 지정할 수 있습니다.

출력 디렉토리를 지정하여 ES6 및 ES3 변환 코드를 출력 한 다음 즉시 참조 할 대상을 선택할 수도 있습니다 (old style IE ifs 사용).

2

다른 tsconfig.json 파일을 사용하는 것이 어떻습니까?

예를 들어

, 같은 :

- root 
    - ts-source 
    - js-es3 
     - tsconfig.json 
     - js 
    - js-es5 
     - tsconfig.json 
     - js 
다음

root/js-es3/tsconfig.json :

{ 
    "compilerOptions": { 
     "target": "ES3", 
     "outDir": "js", 
     "rootDir": "../ts-srouce" 
    } 
} 

그리고 root/js-es5/tsconfig.json :

{ 
    "compilerOptions": { 
     "target": "ES5", 
     "outDir": "js", 
     "rootDir": "../ts-srouce" 
    } 
} 

나는 비주얼 스튜디오 사용자 아니에요 나는 돈 때문에 다른 tsconfig.json 파일을 지원하는 방법을 알고 있지만, 그럴 수 없다면, tsc을 사용하여 컴파일 할 수 있습니다.

+0

이것이 대부분의 IDE/편집자의 대답이라고 생각합니다.하지만 불행히도 VS2015는 여러 개의 tsconfig 파일을 지원하지 않으며'rootDir'을 완전히 무시하고'outDir'가 출력 사본을 얻는 버그가 있습니다. 또한 만들어집니다. – Keith

+0

@ 키이스 정말인가요? 나는 VS 녀석이 아니지만 [이 티켓] (https://github.com/Microsoft/TypeScript/issues/4714)에 따르면 지원되는 것으로 보입니다. –

+0

그래, 광범위하게 테스트했기 때문에 대답하기까지 너무 오래 걸렸어. TypeScript의 오류가 아니라 [VS2015의 버그] (https://connect.microsoft.com/VisualStudio/feedback/details/3101865)라고 생각합니다. 무료 VS 코드는 여러 개의 tsconfig 파일을 잘 처리하지만 .csproj가 포함 된 전체 뚱뚱한 VS2015는 현재 실패합니다. 어쩌면 그들은 업데이트 4에서 그것을 수정합니다. – Keith