- 接口的基本使用
export default {};
interface IFullName {
firstName: string;
lastName: string;
}
let goddessName: IFullName = {
firstName: "邱",
lastName: "淑贞",
};
console.log(goddessName.firstName);
console.log(goddessName.lastName);
function say({ firstName, lastName }: IFullName): void {
console.log(`我的女神是: ${firstName}_${lastName}`);
}
say(goddessName);
- 可选属性与只读属性
export default {};
interface IFullName {
firstName: string;
lastName: string;
age?: number;
}
let goddessName: IFullName = {
firstName: "邱",
lastName: "淑贞",
};
interface IInfo {
readonly uname: string;
readonly uage: number;
}
let beauty: IInfo = {
uname: "李庚希",
uage: 18,
};
interface IAAA {
readonly aaa: number;
}
interface IAAA {
bbb: number;
}
let aaabbb: IAAA = {
aaa: 123,
bbb: 456,
};
- 索引签名
export default {};
interface IFullName {
firstName: string;
lastName: string;
age: number;
singName: string;
[props: string]: any;
}
let info = {
firstName: "邱",
lastName: "淑贞",
age: 18,
singName: "赌王",
dance: "兔子舞",
};
let goddess3: IFullName = info;
let goddess4: IFullName = {
firstName: "邱",
lastName: "淑贞",
age: 18,
singName: "赌王",
dance: "兔子舞",
abc: false,
} as IFullName;
interface Ibeauty {
[props: string]: string;
}
let name: Ibeauty = {
name1: "邱淑贞",
name2: "古力娜扎",
name3: "周慧敏",
};
let goddess5: IFullName = {
firstName: "邱",
lastName: "淑贞",
age: 18,
singName: "赌王",
dance: "兔子舞",
abc: 123,
bcd: false,
};
- 函数接口
export default {};
interface ImakeMoney {
(salary: number, reward: number): number;
}
const sumMoney: ImakeMoney = function (x: number, y: number): number {
return x + y;
};
let res = sumMoney(10, 20);
console.log(res);
interface IStringArray {
[index: number]: string;
}
let myArray: IStringArray;
myArray = ["邱淑贞", "赵今麦"];
let myStr: string = myArray[1];
console.log(myStr);
- 接口的继承
export default {};
interface IPerson {
age: number;
}
interface IName extends IPerson {
name: string;
}
let lady: IName = {
name: "邱淑贞",
age: 18,
};
interface IFatherMoney {
m1: number;
}
interface IMotherMoney {
m2: string;
}
interface ISon extends IFatherMoney, IMotherMoney {
s: number;
}