Aqui está meu código TypeScript:
// Enum
enum Direction {
North = 1,
East,
West,
South
}
console.log(Direction.East);
// Literal types
function yesOrNoQuestion(ans: "yes" | "no"): void {
console.log("You said", ans);
}
yesOrNoQuestion("yes");
// Tuple
type rgb = [red: number, green: number, blue: number];
const color: rgb = [10, 255, 255];
console.log(color);
const tuple: [boolean, string] = [true, "yes"];
console.log(tuple);
Aqui está o código compilado:
"use strict";
// Enum
var Direction;
(function (Direction) {
Direction[Direction["North"] = 1] = "North";
Direction[Direction["East"] = 2] = "East";
Direction[Direction["West"] = 3] = "West";
Direction[Direction["South"] = 4] = "South";
})(Direction || (Direction = {}));
console.log(Direction.East);
// Literal types
function yesOrNoQuestion(ans) {
console.log("You said", ans);
}
yesOrNoQuestion("yes");
const color = [10, 255, 255];
console.log(color);
const tuple = [true, "yes"];
console.log(tuple);
Tenho 3 comentários no meu código TS (Enum, Tipos Literais, Tupla). Mas o código compilado tem apenas os dois primeiros comentários. Há algum motivo para isso? O TS deve manter todos os comentários ou removê-los. Por que ele está removendo apenas comentários específicos?
Não defini explicitamente "removeComments" em meu tsconfig.json
:
{
"compilerOptions": {
"target": "ES6",
"strict": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"alwaysStrict": true
}
}
Eu compilei usando npx tsc
comando.
Eu esperava:
- Todos os três comentários devem ser preservados, ou
- Todos os três comentários devem ser removidos
Mas o TypeScript preservou apenas os dois primeiros. Não defini "removeComments" explicitamente.
Então, eu estou me perguntando:
- Existe alguma regra ou lógica que o TypeScript usa para manter/remover determinados comentários?
- Isso se deve à otimização ou à transformação do código?
- Ou isso é apenas um problema de configuração?