javascript - Varför visar Chrome symbolen \ufeff och gråa linjer i TypeScript?


  1. När jag öppnar min TypeScript i Chrome-debugger ser jag en konstig röd prick på första raden. Jag tror att den motsvarar det orenderade tecknet \ufeff (som popovern säger). Det finns inget sådant tecken i TS-filen när jag öppnar den i redigeraren (t.ex. Notepad++ med ”visa alla tecken”). Var kommer detta tecken ifrån?

  2. Denna fil innehåller också några rader färgade i grått. Det verkar som att jag inte kan sätta en brytpunkt på de raderna (t.ex. rad #17 på bilden). Hur kan jag bli av med det?

I FireFox uppstår inga av dessa problem. Jag har inget konstigt tecken i början av filen och jag kan sätta brytpunkter på rader som var nedtonade i Chrome.

Uppdatering. Jag har upptäckt att \ufeff motsvarar BOM. Det genereras sannolikt av --emitBOM-alternativet i TypeScript-kompilatorn. Kan någon nu förklara hur jag kan ta bort detta alternativ? Jag kan inte hitta någon referens till "tsc" i min projektfil när jag öppnar den i en textredigerare, och jag kan inte heller hitta några lämpliga alternativ i Visual Studio GUI (Web Express).

Uppdatering 2. Jag har lärt mig från denna diskussion att med hjälp av \ufeff=BOM kan Chrome indikera för en utvecklare att det är något fel i koden. Men BOM visas även när jag kommenterar ut all kod i min fil.

Svar #1

Det verkar som att Chrome på något sätt inte gillar UTF-8 med BOM. Och detta är exakt en kodning som min instans av Visual Studio sparade filen i. Jag har bytt kodningen till UTF-8 utan BOM och de beskrivna problemen har försvunnit.

Hur man gör: motsvarande StackOverflow-fråga. I två ord: 1) välj önskad kodning vid sparande via "Spara som...", eller 2) gå till Arkiv/Avancerade sparalternativ... och välj kodningen för alla filer (du måste lägga till denna meny om du inte har någon). Kodningen kallas "UTF-8 utan signatur".

Svar #2

När jag öppnar min TypeScript i Chrome-debuggern ser jag en konstig röd prick på första raden. Jag tror att det motsvarar en orenderad symbol

Ja, detta är stycklista som andra svar redan påpekat. För 2:

Denna fil innehåller också några rader färgade i grått. Det verkar som att jag inte kan sätta en brytpunkt på de raderna (t.ex. rad #17 på bilden). Hur kan jag bli av med det?

Det här är rader som inte finns i sourcemap. Detta är sättet Chrome dev-verktyg visar okartlagd till genererad JS källkod. Så du kan inte sätta en brytpunkt här eftersom körningen inte vet vilken JS som motsvarar denna TS.

Relaterade artiklar