interface
interface InfoType {
age?: number;
readonly name: string;
}
const info: InfoType = {
name: 'cqc',
age: 23,
};
定义索引类型
interface IndexKey {
[index: number]: string;
}
const fontLanguage: IndexKey = {
0: 'HTML',
1: 'JAVASCRIPT',
2: 'CSS',
};
定义函数类型
type CalcFnType = (n1: number, n2: number) => number;
interface CalcFnInterface {
(n1: number, n2: number): number;
}
function calcAdd(n1: number, n2: number, calcFn: CalcFnInterface ) {
...
}
interface 继承
interface ISwim {
swimming: () => void;
}
interface IEating {
eating: () => void;
}
interface IAction extends ISwim, IEating {}
const action: IAction = {
eating() {},
eating() {},
};
交叉类型 &
interface ISwim {
swimming: () => void;
}
interface IEating {
eating: () => void;
}
interface MyInterface extends ISwim, IEating {}
type MyType = ISwim & IEating;
type MyType2 = ISwim | IEating;