import { Course } from "./course"; import { Identifiable } from "./common"; export type Semester = number; export interface Student extends Identifiable { name: string; surname: string; email: string; albumNumber: number; semester: Semester; course: Course; } export function isStudentDataComplete(student: Student): boolean { return getMissingStudentData(student).length === 0; } export function getMissingStudentData(student: Student): (keyof Student)[] { return [ !!student.name || "name", !!student.surname || "surname", !!student.email || "email", !!student.albumNumber || "albumNumber", !!student.semester || "semester", !!student.course || "course", ].filter(x => x !== true) as (keyof Student)[]; }