newLine în TypeScript

Alege sfârșitul de rând din fișierele generate (lf sau crlf); emitBOM adaugă marcajul BOM UTF-8 la început.

Sintaxă
"compilerOptions": {
  "newLine": "lf",
  "emitBOM": false
}

Ce face newLine

newLine stabilește caracterele de sfârșit de rând din fișierele scrise de tsc: lf (\n, folosit pe Linux și macOS) sau crlf (\r\n, folosit pe Windows). Valoarea implicită este lf (de la TypeScript 5.0; înainte depindea de sistem).

emitBOM adaugă la începutul fiecărui fișier marcajul BOM UTF-8 (octeții EF BB BF). Unele unelte vechi de pe Windows îl cer, dar majoritatea îl tratează ca pe un caracter în plus. Implicit: false.

Parametri

Parametru Descriere
newLine: "lf" | "crlf" Sfârșitul de rând. Implicit lf.
emitBOM: true Se scrie BOM-ul UTF-8 la început. Implicit false.

Exemple

Exemplul 1: Octeții din fișierul generat

od -c arată octeții: la început BOM-ul (357 273 277, adică EF BB BF), iar la final de rând \r \n. Cu valorile implicite apare doar \n, fără BOM.

// tsconfig.json
{
  "compilerOptions": {
    "target": "es2022",
    "newLine": "crlf",
    "emitBOM": true
  }
}

// index.ts
const a = 1;
console.log(a);

Rezultat (tsc 5.9)

$ npx tsc && od -c index.js | head -3
0000000  357 273 277   c   o   n   s   t       a       =       1   ;  \r
0000020   \n   c   o   n   s   o   l   e   .   l   o   g   (   a   )   ;
0000040   \r  \n

$ npx tsc --newLine lf --emitBOM false && od -c index.js | head -2
0000000    c   o   n   s   t       a       =       1   ;  \n   c   o   n
0000020    s   o   l   e   .   l   o   g   (   a   )   ;  \n

Greșeli frecvente

  • Să folosești emitBOM pentru scripturi rulate pe Linux cu #!/usr/bin/env node. BOM-ul din fața lui #! strică scriptul.

Comenzi înrudite

  • outDir: Directorul în care tsc scrie fișierele generate, cu aceeași structură de subdirectoare ca sursele.
  • removeComments: Scoate comentariile din fișierele .js generate (și din .d.ts).