https://code.tutsplus.com/tutorials/typescript-for-beginners-part-3-interfaces–cms-29439
https://desarrolloweb.com/articulos/definicion-interfaces-typescript.html
interface Alumno{ nombre:string, readonly edad:number, matriculado:boolean, notas:number[], dni?:string } interface AlumnoCorto{ nombre:string, edad:number } let ana:Alumno={nombre:'Ana', edad:23, matriculado:true, notas:[10,9,7]} let eva:Alumno={nombre:'Eva', edad:23, notas:[10,9,7]} //Error en Eva porque falta una propiedad let pep:Alumno={nombre:'Pep', edad:23, matriculado:true, notas:[10,9,7], dni:'1231312332'} //Error en dni porque en Alumno no existe esa propiedad console.log(eva) ana.nombre='Ana Pi' ana.edad=90 function saludo(alum:Alumno):void{ console.log("Hola "+alum.nombre) } function recortarAlumno(al:Alumno):AlumnoCorto{ return {nombre:al.nombre,edad:al.edad} } saludo(ana) console.log(ana)
Otro ejemplo:
interface Alumno{ nombre:string, edad:number } let ana:Alumno={nombre:'Ana',edad:25} let eva:Alumno={nombre:'Eva',edad:25} let pep:Alumno={nombre:'Pep',edad:25} let juan:Alumno={nombre:'Juan'} // Falla interface Aula{ nombre:string, alumnos:Alumno[] } let laboratorio:Aula={nombre:'Laboratorio',alumnos:[ana]} let lectura:Aula={nombre:'Lectura',alumnos:[ana,eva,pep,juan]} console.log(lectura)