我是 typescript (和 OOP)的新手。我在他们的官方文档中找到了以下示例:
class Student {
fullName: string;
constructor(public firstName: string, public middleInitial: string, public lastName: string) {
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
}
interface Person {
firstName: string;
lastName: string;
}
function greeter(person : Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}
let user = new Student("Jane", "M.", "User");
document.body.innerHTML = greeter(user);
在我看来,class Student
没有属性lastname
,因此不应该与接口(interface) Person
兼容当函数greeter
被调用时。
我在这里缺少什么?
最佳答案
该类确实有一个字段lastName
。 public lastName: string
是一个速记字段声明。这既是一个 public
字段,也是一个参数声明。这就是构造函数参数中修饰符的含义。请参阅docs欲了解更多信息
关于javascript - 这个 Typescript 类如何与这个接口(interface)兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54905694/