Chrome认为我的JavaScript是普通话
当我编译并运行我的typescript并在googlechrome中加载页面时,googlechrome认为我的javascript是普通话 这是我的.ts文件:Chrome认为我的JavaScript是普通话,javascript,html,google-chrome,typescript,Javascript,Html,Google Chrome,Typescript,当我编译并运行我的typescript并在googlechrome中加载页面时,googlechrome认为我的javascript是普通话 这是我的.ts文件: class Student { fullName: string; constructor(public firstName, public middleInitial, public lastName) { this.fullName = firstName + " " + middleInitial + " " + las
class Student {
fullName: string;
constructor(public firstName, public middleInitial, public lastName) {
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
}
interface Person {
firstName: string;
lastName: string;
}
function greeter(person: Person) {
return "Hello, " + person.firstName + person.lastName;
}
var user = new Student("Mike", "A", "Harv");
document.body.innerHTML = greeter(user);
这是我的.js文件:
var Student = (function () {
function Student(firstName, middleInitial, lastName) {
this.firstName = firstName;
this.middleInitial = middleInitial;
this.lastName = lastName;
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
return Student;
}());
function greeter(person) {
return "Hello, " + person.firstName + person.lastName;
}
var user = new Student("Mike", "A", "Harv");
document.body.innerHTML = greeter(user);
这是我的.html文件:
<!DOCTYPE html>
<html>
<head><title>TypeScript Greeter</title></head>
<body>
<script src="greeter.js"></script>
</body>
</html>
打字迎宾员
编辑:我的.js文件的编码是UTF-8
我的js文件的十六进制转储
如果将utf-8(无bom)编码的greeter.js文件解码为UCS2-LE,您将看到中文字母。我试图说服Chrome将utf8编码的文件解码为ucs2le,但我没有成功。看起来,包括chrome在内的每个程序,只有在文件开头有正确的BOM表时才会使用UCS2-LE。以下字节将被解码为: 这些角色与屏幕截图上的角色相同
考虑到所有这些,我非常确定你的greeter.js文件编码被破坏了,它有UCS2 bom
FF FE
,javascript的utf8编码字节被追加。我通过用bom编码UTF-8来保存我的js文件来解决这个问题 您可能有一些不可见的Unicode字符。您的文件存储在不同的字符集(编码)中。更多:与你的问题完全不同,考虑到Student
没有实现Person
,而你却把它传递给greeter
…@TamasHegedus,我对TypeScript很精通,OP在问题中包括了他们的TypeScript,我有点惊讶。MikeMcCaughan抱歉,我的英语一定有问题。我的意思是包含的脚本类型正确,编译良好。只要类具有正确的属性,就不必显式地实现接口。例如,若学生并没有名字,那个么调用greeter(user)
将是一个编译时错误。如果显式实现Person,则会在学生类上显示编译时错误。在chrome中使用什么语言设置?它可能会受到默认语言的影响。@TamasHegedus我正在使用英语(美国)