interface girl {
name:string;
age:number;
bust:number;
waitline ?: number; // 表示可有可无,不是必须
[propname: string]: any; //这个的意思是,属性的名字是字符串类型,属性的值可以是任何类型。
say(): string; //say()方法,返回值是string类型。必须在对象里添加say方法
}
const guniang ={
name:'xiaohong',
age:11,
bust:100,
waitline:111,
say(){
return 'hello'
}
}
const fun1 =(guniang:girl)=>{
console.log(guniang.name,guninag.age,guniang.bust)
}
接口和类的约束
interface girl {
name:string;
age:number;
bust:number;
waitline ?: number; // 表示可有可无,不是必须
[propname: string]: any; //这个的意思是,属性的名字是字符串类型,属性的值可以是任何类型。
say(): string; //say()方法,返回值是string类型。必须在对象里添加say方法
}
class xiaohong implements girl{
name = "刘英";
age = 18;
bust = 90;
say() {
return "欢迎!";
}
}
接口间的继承
interface girl {
name:string;
age:number;
bust:number;
waitline ?: number; // 表示可有可无,不是必须
[propname: string]: any; //这个的意思是,属性的名字是字符串类型,属性的值可以是任何类型。
say(): string; //say()方法,返回值是string类型。必须在对象里添加say方法
}
inferface teacher extends girl{
// 继承了girl接口里的,而且新增加了teach方法,返回值为string类型
teach(): string;
}
接口只是对我们开发的约束,在生产环境中并没有体现。也可以说接口只是在 TypeScript 里帮我们作语法校验的工具,编译成正式的js代码,就不会有任何用处了。