javascript - 这个 Typescript 类如何与这个接口(interface)兼容

标签 javascript typescript

我是 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被调用时。

我在这里缺少什么?

最佳答案

该类确实有一个字段lastNamepublic lastName: string 是一个速记字段声明。这既是一个 public 字段,也是一个参数声明。这就是构造函数参数中修饰符的含义。请参阅docs欲了解更多信息

关于javascript - 这个 Typescript 类如何与这个接口(interface)兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54905694/

相关文章:

javascript - HTML/CSS/JS 构建工具

Typescript 在具有严格编译器选项的 node_modules 中抛出错误

javascript - 显示星级

javascript - 如何访问类函数内的类变量?

javascript - ChangeDetectionStrategy.OnPush 什么时候实际运行变更检测?

javascript - 任何开源标签编辑器,就像 SO 一样?

javascript - Controller 之间的 $rootscope 并刷新它

javascript - 我怎么能覆盖css typeahead js

javascript - 使用 dateAxisRenderer 的 jqPlot 刻度不匹配

typescript 在保存时编译为单个文件