정상적으로 docOne을 생성했지만 name속성과 age속성에 접근할 수 없다.
(uid는 가능)
addUID의 리턴값의 속성으로 uid만 명시해줬기 때문
이 때 제네릭을 사용하면 타입에 대한 힌트를 주어 속성을 정확히 파악해서 문제가 해결됨
extends 를 써서 상속받게 할 수도 있음
인터페이스를 만들 때도 특정 타입을 강조하기 위해 사용할 수도 있음
// with interfaces
interface Resource<T> {
uid: number;
resourceName: string;
data: T;
}
const docThree: Resource<string> = {
uid: 1,
resourceName: "person",
data: "Jack",
};
const docFour: Resource<string[]> = {
uid: 2,
resourceName: "shoppingList",
data: ["item1", "item2"],
};
참고 :
https://www.youtube.com/watch?v=IOzkOXSz9gE&list=PL4cUxeGkcC9gUgr39Q_yD6v-bSyMwKPUI&index=18