Call Signature : 해당 코드의 변수나 함수 타입을 알려준다.
타입을 알려주는 것이 중요하다!
// 인터페이스(interface)
// 함수 타입 - 호출 시그니쳐(Call Signature)
// 하나의 함수 타입
// 매개변수의 타입, 함수 타입을 지정해주는 것
// 소괄호를 써서 이것을 작성하는 것을 호출 시그니처 라고 한다.
// 매개변수 갯수와 타입만 일치해도 문제 없다.
// 이름이 달라도 상관 없음
// 타입을 알아서 찾아간다. 호출 시그니처를 통해서
type Add = (a: number, b:number) => number;
const add:Add (a,b) => a+b;
interface GetName {
(message: string): string; // 소괄호를 작성하는 방법을 시그니처 라고 한다.
}
// 동일한 구조를 통해 재사용을 하기 위함.
// 만약 재사용할 필요 없다면 User interface Getname을 넣어주면 그만이다.
// 매개변수 갯수와 타입만 일치해도 문제 없다.
// 이름이 달라도 상관 없음
interface User2 {
name: string;
age: number;
getName: (param: string) => string;
}
interface User {
name: string;
age: number;
getName: GetName;
}
const heropy: User = {
name: 'Heropy',
age: 85,
getName(message: string) {
console.log(message);
return this.name;
},
};
heropy.getName('Hello');