primitive types
# 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 타입이라 타입이 막 바뀌어도 에러안뜬다.