Type vs Interface
Object 선언할때
interface IObject {
x: number;
y: number;
}
type TObject = {
x: number;
y: number;
};
function을 선언할때
interface IFunction {
(x: number, y: number): number;
}
type TFunction = (x: number, y: number) => number;
Type에서는 할 수 있지만 interface에서는 할 수 없는 것들
type Name = string;
type UnionType = string | number;
type TupleType = [string, number];
Interface는 할 수 있고 Type은 못하는 것
interface merging
interface IRectangle {
height: number;
}
interface IRectangle {
width: number;
}
let rectangle: IRectangle = {
height: 20,
width: 30,
};
Interface Merging
class Review {
getY = (x: number) => {
return x;
};
getX(x: number) {
return x;
}
}
interface GetXnY {
getX: (x: number) => number;
getY: (y: number) => number;
}
interface GetXnY {
getX: (x: number) => number;
}
interface GetXnY2 {
getX(x: number): number;
getY(y: number): number;
}
interface GetXnY2 {
getX(x: number): number;
getY(y: string): number;
}
const testMethod: GetXnY2 = {
getX(x) {
return x;
},
getY(y) {
return 1;
},
};