javaScript/typeScript

primitive types

부엉이사장 2024. 8. 14. 12:53

# primitive types란?

이전 ts포스팅에서 단순하게 string타입으로 예시를 들었다.

이런걸 원시타입들이라고 하는데 걍 식별자 하나를 가르킨다.

사실 js배울때 primitive값이랑 object값이랑 따로배웠는데 그냥 여긴 오브젝트에 들어있는 키에대한 값도

원시값이라고 하나보다. (코딩애플이 기본강의라 구분 안해놓은걸수도 있음..)

 

 

# string 타입

let testName: string = "kim";

스트링타입

 

# number타입

let testAge: number = 33;

 

# boolean 타입

let testBollean: boolean = true;

 

# null 타입

let testnull: null = null;

isNull안해도될듯?

 

# undefined타입

let testundefined: undefined = undefined;

 

 

# 어레이 타입

let arr: number[] = [1, 2, 3];

걍 []이라고 적으면 되는데 여기앞에 어레이 안에 들어갈 데이터타입 적어주면 된다.

 

# 객체 타입

let obj: { name: string; age: number } = { name: "jacob", age: 33 };

객체는 보기 더 직관적이다. 

 

 

# 어레이안 객체 타입

내가 자주 쓰는 데이터타입인데.. (백단에서 이런식의 데이터를 자주 보내줌)

let arr: { name: string; age: number }[] = [
  { name: "muzzi", age: 4 },
  { name: "dori", age: 3 },
];

이렇게 쓰면된다. 어레이안에 객체들 집어넣는 타입임.

 

 

# 타입 자동지정

let test = "jacob";

test = 1;

타입 지정을 안한 test라는 변수 식별자에 숫자타입을 갖다넣으면 에러가 뜬다.

타입이 자동지정 되서 그런건데

let test: string = "jacob";

test = 1;

위 코드는 아래코드와 똑같은 코드다. 

즉 처음 할당한게 타입으로 자동지정되서 재할당시 검사한다는 뜻임.

 

 

 

# 자동지정 오류?

let test: string;
test = "jacob";
test = 1;

test라는 변수는 스트링타입이라고 선언만 짤라서 저렇게 하고

1을 재할당하면

이렇게 오류가 뜬다.

 

근데

let test;
test = "jacob";
test = 1;

자동타입지정에 이렇게 선언과 할당을 쪼개면 오류가 안뜬다.

내가 js를 깊게 공부하고 용어에 민감해서 그런건가.. 이런게 왜이렇게 불편하지?

 

 

 

# 숙제

let project = {
  member : ['kim', 'park'],
  days : 30,
  started : true,
}

이걸 타입 지정.

let project: { member: string[]; days: number; started: boolean } = {
  member: ["kim", "park"],
  days: 30,
  started: true,
};

멤버 키값에는 어레이가 들어가는데 string만 들어가야한다.

days는 숫자만 들어가고

started에는 불린이 들어가야한다.

 

 

++ 변수 그냥만들면 any타입됨.

let test;

얘 그냥 any type

let test;
test = 1;
test = "muzzi";

any 타입이라 타입이 막 바뀌어도 에러안뜬다.