타입정의하기
타입정의하기
angular에서 타입을 정의하는 다양한 방법에 대해 간단한 예제들을 리스트업 해 보았습니다.
any
가장 많이 사용하는 방식으로 object의 타입을 잘 모를때 정의 할 수 있습니다.
private anytype: any;
private anyMethod(anyvalue: any): any {
return anyValue;
}
두가지 이상 정의할때
변수의 값이 두가지 이상의 타입을 가질때 사용 가능합니다.
private strOrnumber: string | number;
private strOrnumber: string | null;
private anyMethod(anyvalue: string | number): string | number {
return StringOrNumber;
}
바로 정의
string, number같은 경우는 불편함 없이 바로 사용가능하나 object같은 경우 interface를 설정하여 정의하기를 권장하나 조금 번거러울때 사용하시기를..
private anyMethod(users: Array<{ id: string; email: string }>) { // any를 사용하는 것보다 가독성이 있다.
.....
}
Observable
getBookList(): Observable<any> {
return this.http.get(`${this.api}?q=query`)
.pipe(map((books: any) => books.items || []));
}
변수초기화
angular에서는 변수설정시 초기값을 넣거나 혹은 any로 정의하거나 혹은 constructor에서 값을 정의하기를 권장합니다.
하지만 그렇지 못할 경우 '!' 이나 '?'을 사용합니다.
private anyvalue: any; // ok
private setvalueonconstrouct: number; // ok, 아래 constructor에서 정의
private mystring: string; // 경고발생, 이때 ! 나 ? 을 사용하여 경고를 없앱니다.
constructor() {
this.setvalueonconstrouct = 3;
}
!
값이 할당되지 않았지만 프로그램에서 할당 됩니다.
private notdefined_var!: string
?
undefined로 할당됩니다.
private undefined_var?: string