//Boolean 타입 true/false 타입만 설정 가능
let isDone: boolean = false;
//Number 타입 숫자, 2진수, 8진수 ex) 컬러 타입
let number: number = 6;
//String 타입
let name: string = 'seohyun';
let fullName: string = `Bob Bobbington`;
let age: number = 37;
let sentence: string = 'Hello, my name is ' + fullName + '.\n\n' + "I'll be " + (age + 1) + ' years old next month.';
//Array 타입
let list: number[] = [1, 2, 3];
let array: Array<number> = [1, 2, 3];
//Tuple 타입 : 요소의 타입과 개수가 고정된 배열
let x: [string, number];
x = ['hello', 10];
x = [10, 'set']; -> Error 발생
//Enum 타입 : 원래는 0,1,2 의 값을 가질테지만 아래처럼 설정하면 1,2,3 의 값을 가지게 된다. 혹은 직접 값지정 또한 가능하다.
enum Color {
Red = 1,
Green,
Blue,
}
let c: Color = Color.Green;
// console.log(c); => 2
//매겨진 값을 사용해 enum멤버의 이름을 알아낼 수 있다. ex) let colorName : string = Color[2] =>> Green
//Any 타입 : 알지 못하는 타입을 표현 지정할 수 없을때
let b: any = 4;
let listAny: any[] = [1, true, 'RR'];
//Void 타입 : 어떤 타입도 존재할수 없음 ...? any 의 반대타입 return 값이 나오지 않는 setState 함수 또한 void가 될 수 있다.
let func :(open: boolean) => void
//Null, Undefined 타입 : Void 타입의 하위 타입
//nullable표현 가능
let v: string | null = null;
v = 'hello';
v = 3; -> Error 발생
//Never 타입 : 절대 발생할 수 없는 타입. (잘모르겠오)
//Object : 원시 타입이 아닌타입 -> 위에서 말한 타입이 아닌 나머지 (잘모르겠오)
//Type Assertions : 타입 단언 -> 개발자가 내가 더 타입 잘 아니까 날 믿어! 하는거 이렇게 하면 타입스크립트가 ㅇㅋ믿을게 함
//angle-bracket : react 의 경우 해당 타입단언 사용 불가 JSX요소로 보기 때문
let something: any = 'this is string';
// let strLength: number = (<string>something).length
//as 문법 : 처음에 any타입으로 지정했지만 as를 사용해서 string type으로 타입 단언 해줌
let something1: any = 'this is string';
let strLength: number = (something1 as string).length;