/**
* 对象类型 -- 接口
*/
//在面向对象的语言中,接口(interfaces)是对行为的抽象,而具体如何行动需要类(class)去实现
//在Ts中的接口是非常灵活的概念,除了对行为抽象之外,他还对形状进行了描述
//1.
interface Person {
name: string;
age: number;
}
//变量使用接口时,形状必须和接口相同,或多或少、类型不同都是不允许的
let tom: Person = {
name: "tom",
age: 12
};
//2.可选属性 ?
interface Person2 {
name: string;
age?: number;
}
let tom2: Person2 = {
name: "tom2"
};
//3.任意属性
interface Person3 {
name: string;
age?: number;
[proName: string]: any;
//[proName: string]: stingr; 这种情况,age就会报错,因为number不属于string类型的子集
}
//一旦定义了任意属性,他就会影响确定属性和可选属性的类型
//任意属性之外的其他属性的类型,也必须符合任意属性的类型
let tom3: Person3 = {
name: "tom3",
age: 15,
gender: "any"
};
//4.只读属性
interface Person4 {
readonly id: number;
name: string;
}
let tom4: Person4 = {
id: 12,
name: "tom4"
};
tom4.name = "tom44";
//只读的约束属性在于第一次给对象赋值的时候,而不是给只读属性赋值的时候
//tom4.id = 123; 会报错
TS对象类型 -- 接口(interface)
最新推荐文章于 2023-12-29 19:53:13 发布