我刚刚开始学习TypeScript,而且我很难在http://www.typescriptlang.org/Playground/#tut=ex5
的开始教程中绕过界面行为。据我所知,接口应该强制执行参数的类型,但是这条特定的行会让我失望
var user = new Student("Jane", "M.", "User");
它正确编译并且一切正常,但当我将其修改为
时var user = new Student(1, 2, 3);
它也编译得很好。
有人能详细说明它为什么有效吗?
我知道这是一个初学者问题,但我在网上找不到任何有关此搜索的信息,而且我周围没有任何TypeScript专家。
提前致谢, 尤金
答案 0 :(得分:1)
Student
构造函数参数的类型为any
,因为没有类型注释:
class Student {
fullname : string;
constructor(public firstname, public middleinitial, public lastname) {
this.fullname = firstname + " " + middleinitial + " " + lastname;
}
}
如果我们将其更改为包含某些类型注释,我们会收到错误:
class Student {
fullname : string;
constructor(public firstname: string, // <-- add ': string' here
public middleinitial: string, // and here
public lastname: string) { // and here
this.fullname = firstname + " " + middleinitial + " " + lastname;
}
}
var x = new Student(1, 2, 3); // Error