【TS】接口:只读属性,可选属性,任意属性
接口
只读属性
实现接口后,值可以获取到,但是无法修改
interface Demo1{
name:string,
age:number
};
let va1:Demo1={name:"ming",age:18};
console.log(va1.name);//return ming
va1.name="gang";
console.log(va1.name);//return gang
// 只读
interface Demo2{
readonly name:string,
age:number
};
let va2:Demo2={name:"liu",age:24};
console.log(va2.name);//return liu
//va2.name="liu2";//无法赋值,只读
可选
实现接口时,可以选择实现,也可以选择不实现
// 可选
interface Demo3{
name:string,
age?:number
};
let va3:Demo3={name:"zhang",age:30};
let vb3:Demo3={name:"peo"};
console.log(va3.name+',va4.age: '+vb3.age);//return zhang,va4.age: undefined
任意属性
实现接口时,可以添加零个,一个或多个属性
// 任意
interface Demo4{
name:string,
[age:string]:string
};
// 可以添加一个任意属性
let va4:Demo4={name:"demo4",ddd:"dff"};
console.log(va4['ddd']);//return dff
console.log(va4.ddd);//return dff
console.log(va4.age);//return undefined
// 可以添加多个任意属性
let va5:Demo4={name:"demo4",ddd:"dff",bbb:"sss"};
console.log(va5.bbb);//return sss
// 可以添加0个任意属性
let va6:Demo4={name:"demo4"};
console.log(va6.name);//return demo4

浙公网安备 33010602011771号