배열 안에 객체 타입 선언방법
const contacts: = [
{
name: 'Tony',
address: 'Malibu',
phones: {
home: {
num: 11122223333,
},
office: {
num: 44455556666,
},
},
}
]
contact라는 배열은 안에 객체가 있고 그 객체의 타입을 지정해보았다. (아래 코드 참고)
interface PhoneNumberDictionary {
[phone: string]: { //phone은 의미가 크지 않음!! 임시 변수같은 느낌
num: number;
};
}
interface Contact {
name: string;
address: string;
phones: PhoneNumberDictionary;
}
const contacts: Contact[] = [
{
name: 'Tony',
address: 'Malibu',
phones: {
home: {
num: 11122223333,
},
office: {
num: 44455556666,
},
},
}
];
promise 반환값 선언하는 방법
function fetchItems(): string[] {
let items = ['a', 'b', 'c'];
return items;
}
const result = fetchItems();
console.log(result);
// Promise<string[]> Promise의 return값으로 들어올 값의 타입을 <> 안에 지정!
function fetchItemsPromise():Promise<string[]> {
let items = ['a', 'b', 'c'];
return new Promise(function (resolve) {
resolve(items);
})
}
enum을 사용하는 것과 사용하지 않는 차이
enum 사용안했을때
findContactByPhone(phoneNumber: number, phoneType: string):Contact[] {
return this.contacts.filter(
contact => contact.phones[phoneType].num === phoneNumber
);
}
phoneType은 home, office, studio로 정해져있는데 보낼 때 오타를 낼 가능성이 있음.
enum 사용
enum PhoneType {
Home = "home",
Office = "office",
Studio = "studio",
}
findContactByPhone(phoneNumber: number, phoneType: PhoneType):Contact[] {
return this.contacts.filter(
contact => contact.phones[phoneType].num === phoneNumber
);
}
오타로 인한 오류의 가능성을 줄일 수 있다.
실제로 보낼때는 findContactByPhone(123, PhoneType.Home) 등으로 사용하면 된다.
반응형
'Typescript' 카테고리의 다른 글
[typescript 기본] 타입가드 is와 타입단언 as (0) | 2022.01.16 |
---|---|
[typescript 기본] 타입 단언 as (0) | 2022.01.16 |
[typescript 기본] 제네릭 문법 (0) | 2022.01.06 |
[typescript 기본] class와 prototype (0) | 2022.01.03 |
[typescript 기본] enum과 enum 활용법 (0) | 2021.12.29 |