Student class test

Class test

by roge roge

HTML

<h1>
Student class test
</h1>

TypeScript

enum State {
    Ko = "KO",
    Unknown = "Unknown",
    Ok = "OK",
}

interface Person {
    firstname: string;
    lastname: string;
}

interface StatedPerson extends Person {
    state: State;
}

class Student implements StatedPerson {
    fullname : string;
    state = State.Unknown;
    
    constructor(firstname, middleinitial = '', lastname = 'Unknown') {
        this.fullname = firstname + " " + middleinitial + " " + lastname;
    }
    
    toString() {
    	return '{"firstname": '+ this.firstname 
      	+ '", "middleinitial": "' + this.middleinitial 
         + '", "lastname": "'+this.lastname 
         + '", "fullname": "'+this.fullname
         + '", "state": "'+this.state
         +'"}'
    }
}

function greeter(person : Person) {
    return "Hello, " + person.firstname + " " + person.lastname;
}

let jane = new Student("Jane", "Mss.", "F.");
let bob = new Student("Bob");
bob.state = State.Ok;

let div = document.createElement('div');
div.innerHTML = '<pre> jane: ' + jane + ' </pre>';
div.innerHTML += '<p>' + greeter(jane) + ' </p>';
div.innerHTML += '<pre> bob: ' + bob + ' </pre>';
div.innerHTML += '<p>' + greeter(bob) + ' </p>';
document.body.appendChild(div);