호출 시그니처 생성
타입을 재사용하기 위해 호출 시그니처를 생성하여 사용할 수 있다.
// 호출 시그니처 생성
interface getLikeNumber {
// 매개변수와
(like: number): number;
}
interface Post {
id: number;
title: string;
getLikeNumber: getLikeNumber
}
const Post1: Post = {
id: 1,
title: 'post 1',
getLikeNumber(like: number) {
return like;
}
}
post1.getLikeNumber(1)
속성의 모든 이름을 미리 알지 못하지만 값의 형태는 알고 있을 때 인덱스 시그니처를 사용하여 가능한 값의 Type을 지정할 수 있다.
interface Post {
[key: string]: unknown // 어떤 데이터가 올지 모르기 때문에 unknown으로 지정
id: number;
title: string;
}
post1['content'] = 'study'
post1['pages'] = 300
// 배열 인덱스 시그니처
interface Names {
[item: number]: string;
}
const userNames: Names = ['Kim', 'Joe']