TypeScript는 여러 가지 하위 수준 컴파일을 수행하지만 indexOf
은 그 중 하나가 아닙니다. ECMAScript 5를 타겟팅하는 경우 specification에 있었기 때문에 indexOf
이 포함되지만 어쨌든 ECMAScript 3을 대상으로하더라도 수정되지 않습니다.
모든 경우에 다운 레벨 컴파일은 표준 버전간에 이루어 지므로 브라우저 호환성을 원활하게하지 못합니다.
하위 레벨 컴파일의 두 가지 예가 아래에 있습니다. 각각의 경우 출력은 target: "ES5"
플래그로 타겟팅하는 버전에 따라 다릅니다.
let/const
TypeScript. 블록 범위 변수를 사용할 수 있습니다.
const x = 'loaded';
{
const x = 'new value';
}
// loaded
console.log(x);
JavaScript. 이름 지정 충돌을 방지하기 위해 내부 변수 x
의 이름이 x_1
으로 바뀝니다.
var x = 'loaded';
{
var x_1 = 'new value';
}
// loaded
console.log(x);
반복
타이프 라이터. for-of
루프를 사용할 수 있습니다.
const x = "loaded";
for (const char of x) {
console.log(char);
}
JavaScript. 루프는 훨씬 덜 우아하지만 적당히 호환되는 for 루프로 변환됩니다.
var x = "loaded";
for (var _i = 0, x_1 = x; _i < x_1.length; _i++) {
var char = x_1[_i];
console.log(char);
}
Typescript 컴파일러는 브라우저 특정 코드를 작성하지 않으며, 여전히 개발자의 책임입니다. – Ananda