let person: object = {name: hoon, age: 26}
console.log(person.name); // error
object
타입은 name 속성을 가지기 않기 때문에 위 코드는 에러를 반환한다.
해결방법은 아래와 같다.
// IPerson
export interface IPerson{
name: string;
age: number
}
object
에 담긴 속성들의 타입을 얻기 위해 인터페이스를 생성한다. 이후 person 객체의 타입을 IPerson
으로 바꾸어 적용하면 person.name
을 얻을 수 있다. 이를 타입 단언
이라고 한다.
import {IPerson} from './Interfaces'
let person: object = {name: hoon, age: 26}
let personName = (person as IPerson).name // hoon
let personName2 = (<IPerson>person).name // hoon