为什么Chrome会在TypeScript中显示\ ufeff符号和灰线?

时间:2015-06-05 09:50:07

标签: javascript visual-studio google-chrome typescript google-chrome-devtools

  1. 当我在Chrome调试器中打开我的TypeScript时,我在第一行看到了奇怪的红点。我认为它对应于未呈现的符号\ ufeff(如popover所说)。当我在编辑器中打开它时,TS文件中没有这样的符号(例如,Notepad ++ with" show all symbols")。这个符号来自哪里?

  2. 此文件还包含一些灰色的线条。似乎我不能在那些行中插入断点(例如,图片中的第17行)。我怎么能摆脱它呢?

  3. TS or JS troubles in Chrome

    在FireFox中,并未提供所有这些问题。我在文件的开头没有任何奇怪的符号,我可以将断点插入Chrome中灰显的行。

    更新即可。我发现\ ufeff对应BOM。它可能由TypeScript编译器的--emitBOM选项生成。现在有人可以解释我如何删除此选项?我无法找到任何关于" tsc"在我的项目文件中,当我在文本编辑器中打开它时,我无法在Visual Studio GUI(Web Express)中找到任何正确的选项。

    更新2 。我从this discussion了解到,在\ ufeff = BOM的帮助下,Chrome可以向开发人员表明代码中存在问题。但即使我在文件中注释掉所有代码,BOM也会出现。

2 个答案:

答案 0 :(得分:3)

Chrome似乎不太喜欢带有BOM的UTF-8。这正是我的Visual Studio实例保存文件的编码。我已将编码切换为UTF-8而没有BOM,所描述的问题已经消失。

如何:corresponding StackOverflow question。用两个词:1)选择所需的编码,同时通过"另存为...", 2)转到文件/高级保存选项...并选择编码对于所有文件(如果没有,则需要添加此菜单项)。编码被称为" UTF-8没有签名"。

答案 1 :(得分:3)

  

当我在Chrome调试器中打开我的TypeScript时,我在第一行看到了奇怪的红点。我相信它对应于未渲染的符号\ ufeff

是的,这是其他答案已经指出的BOM。对于2:

  

此文件还包含一些灰色的线条。似乎我不能在那些行中插入断点(例如,图片中的第17行)。我怎么能摆脱它?

这些是源图中没有的行。这是chrome dev工具显示未映射到生成的JS 源代码的方式。所以你不能在这里放置一个断点,因为运行时不知道哪个 JS 对应于这个 TS