接口的讲解

接口

接口:可以描述类的一部分抽象行为, 也可以描述数据的结构形状
接口一般首字母大写,

接口中 可以定义为 强制约束 可选属性 只读属性 任意属性

# 强制约束

// 定义接口  
interface Instate {
name: string;
zge: number;
}

// obj1 满足接口所描述的数据结构的类型
// 并且里面的字段是不能够少的哈。否则会报错的哟
var obj1: Instate;

// 接口数据
obj1 = {
name: "张三",
zge: 4
};

console.log(obj1);

可选属性


// 定义接口
interface Instate {
name: string;
zge?: number; //这个字段可有可无
}

// obj1 满足接口所描述的数据结构的类型
// 并且里面的字段是不能够少的哈。否则会报错的哟
var obj1: Instate;

// 接口数据
obj1 = {
name: "张三"
};

console.log(obj1);

任意属性

// 定义接口 可以有任意多个字段 方便后面动态添加属性
ps==》 属性个数不确定的时候, any 必须是任意的类型。 [propN:string]:any,

interface Instate {
name: string,
zge?: number,
[propN:string]:any,
}

// obj1 满足接口所描述的数据结构的类型

var obj1: Instate;

// 接口数据
obj1 = {
name: "张三"
};

console.log(obj1);

只读属性


// 定义接口 可以有任意多个字段 方便后面动态添加属性
interface Instate {
readonly name: string; //只读属性
zge?: number; //这个属性可以有 可以没有
[propN: string]: any; //动态添加字段哈
}

// obj1 满足接口所描述的数据结构的类型
var obj1: Instate;

// 接口数据
obj1 = {
name: "张三"
};

obj1.name = "张四"; //你修改了 所以会在这里报错的哈
obj1.zge = 10;

console.log(obj1);
原文地址:https://www.cnblogs.com/IwishIcould/p/12442830.html