JS/타입스크립트
객체 타입체크
개발자doc
2024. 5. 2. 19:08
목차
1. 타입 체크 하기
2. 왜 해야할까?
1. 타입 체크 하기
타입스크립트는 각 데이터를 담는 변수에 타입을 지정한다. 원시 타입의 데이터를 담는 변수는 타입 지정이 쉽지만 속성을 여러 속성을 가지고 있는 객체는 어떻게 타입을 지정해야 할까?
1) type 키워드 사용
type은 타입을 지정하는 키워드로 모든 타입을 지정할 수 있고 중복이 되지 않는다는 특징이 있다.
type 타입명 = {
속성1 : 타입,
속성2 : 타입
}
const 객체 : 타입명 ={
속성1 = 값,
속성2 = 값
}
ex)
type userType = {
name : string
}
const user : userType ={
name = '홍길동'
}
다만 type은 한 번 구조가 정의되면 특정 속성을 추가할 수 없다.
2) interface
인터페이스틑 구조를 정의하고 클래스에 상속하여 타입을 체크하는 방법이다. 인터페이스를 상속받은 클래스에서는 구조가 정의된 속성들을 그대로 작성해주어야 한다.
interface 인터페이스명{
속성1 : 타입;
속성2 : 타입;
}
class 클래스명 implements 인터페이스명{
속성1 : 타입;
속성2 : 타입;
constructor(){
}
}
ex)
interface IUser{
name : string;
age : number;
}
class User implements IUser{
name : string;
age : number;
constructor(){
}
}
인터페이스의 경우 상속을 통한 속성을 추가하는 것이 가능하다.
interface IPerson {
name: string;
age: number;
}
//다른 인터페이스를 상속하여 속성을 추가
interface IUser extends IPerson {
userid: string;
}
//속성이 추가된 인터페이스를 상속
class User implements IUser {
name: string;
age: number;
userid: string;
constructor() {
}
}
2. 왜 해야할까?
타입을 지정하지 않으면 객체의 속성이나 변수에 예상치 못한 타입의 데이터가 할당될 가능성이 있고 처리에 대한 문제가 발생할 수 있다.
function add(a, b) {
return a + b;
}
const result = add(1, "2");
console.log(result);
위 코드의 결과는 3을 예상했으나 12라는 결과를 출력한다. 문자열과 숫자를 더해 형변환이 일어나 문자열로 12가 된 것이다. 이처럼 타입이 지정되지 않으면 데이터의 처리가 곤란해질 수 있다. 따라서 타입을 명확하게 지정하고 데이터를 체크하여 데이터 처리에 이상이 없도록 해야한다.
참조
https://devocean.sk.com/blog/techBoardDetail.do?ID=165230&boardType=techBlog