Université en Java



Translate this Java program into TypeScript

Download Java program Universite.Java.zip 

public class Universite<E extends Etudiant> {

    private final java.util.Set<E> _etudiants = new java.util.HashSet<>();

    Universite(E... etudiants) {
        for (E e : etudiants) {
            _etudiants.add(e);
        }
    }
}
…
class Personne {
    /* ... */
}

public class Etudiant extends Personne {

    private final String _n_etudiant;
    private final String _n_INSEE;

    Etudiant(String n_etudiant, String n_INSEE) {
        this._n_etudiant = n_etudiant;
        this._n_INSEE = n_INSEE;
    }

    @Override
    public boolean equals(Object etudiant) {
        if (etudiant == null || this.getClass() != etudiant.getClass()) {
            return false;
        }
        if (this == etudiant) {
            return true;
        }
        final Etudiant e = (Etudiant) etudiant;
        if (this._n_INSEE.equals(e._n_INSEE)) {
            return true;
        }
        return false;
    }

    @Override
    public int hashCode() {
        return this._n_INSEE.hashCode();
    }

    public static void main(String parametres[]) {
        Etudiant XX = new Etudiant("1", "2000164444555");
        Etudiant XY = new Etudiant("2", "1010264222333");
        Etudiant XZ = new Etudiant_etranger("3", "", "CODE PAYS ORIGINE");
        Etudiant_etranger XW = new Etudiant_etranger("4", "", "AUTRE CODE PAYS ORIGINE");
        Universite<Etudiant> Mon_universite = new Universite<>(XX, XY, XZ, XW);
    }
}
…
public class Etudiant_etranger extends Etudiant {

    private final String _id_pays_origine; // Identifiant propre au pays car n°INSEE n'existe probablement pas...

    Etudiant_etranger(String n_etudiant, String n_INSEE, String id_pays_origine) {
        // Question 1
        this._id_pays_origine = id_pays_origine;
    }

    @Override
    public boolean equals(Object etudiant) {
// Question 5

    }

    @Override
    public int hashCode() {
// Question 5

    }
}