Ich bin am Anfang des Lernens TypeScript. Ich komme aus einer stark typisierten Sprache (C#) und habe etwas Wissen in JS.Klassen und Schnittstellen in Typescript
am Anfang ziemlich fiel ich über das folgende Beispiel:
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("Jane", "M.", "User");
document.body.innerHTML = greeter(user);
Jetzt habe ich ein wenig verwirrt bin. Ich würde etwas wie Student:Person
(C#) oder Student implements Person
(Java) erwarten Also: Warum akzeptiert greeter()
ein Objekt der Klasse "Student
"? Ich habe keine Ahnung gesehen, dass "Student
" "Person
" implementiert.
ist es nur über die Namen der Eigenschaften? Also, wenn ich eine andere Klasse
class Teacher {
salaray:int,
firstName:string,
lastName:string
}
ein Objekt dieser Klasse auch hinzufügen, ein gültiger Parameter für greeter()
sein würde?
Ok. Es war eine 50/50 Entscheidung, welche Antwort zu akzeptieren. Trotzdem. :) –