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)