class Person2 {
constructor(public name: string, public age?: number) {}
}
let jack2: Person2 = new Person2('Jack', 32);
console.log(jack2)
// Person2 { name: 'Jack', age: 32 }
class Person3 {
constructor(name: string, age?: number) {
this.name = name;
this.age = age;
}
}
let jack3: Person3 = new Person3('Jack', 32);
console.log(jack3)
// Person3 { name: 'Jack', age: 32 }
const abc = { a: 2, b: 3, c: 4 };
const { a, ...rest } = abc;
console.log(a);
// 2
console.log(rest);
// {b: 3, c: 4}
<aside> 💡 객체도 나머지 연산이 되네!?
</aside>
let person: object = { name: 'jack', age: 32 };
person.name // error
이를 일시적으로 타입 변환하여 해결 가능하다.
(<{ name: string }>person).name
타입스크립트는 독특하게 타입 변환이 아닌 타입 단언(type assertion)이라는 용어를 사용합니다. type assertion은 두가지 형태가 있습니다.
(<any>window)
(window as any)
<aside> 💡 둘다 type assertion 이구나...
</aside>