기초타입
let numValue: number;
let stringValue: string;
let boolenValue: boolean;
let undefinedValue: undefined;
let nullValue: null; //자바스크립트의 기본 원시형 5개 타입
let symbolValue: symbol; //es6의 심볼이라는 새로운 원시형 타입
let objValue: object; //객체인 참조형 타입
let anyValue: any; // 최상위 타입 - 어떤 타입으로도 설정할 수 있음
ts의 타입들
numValue = 3.3;
numValue = "3";
타입을 number로 정의했으면 문자열값을 넣으면 에러남
stringValue ="sementic";
stringValue = `
hello
${1+1}
hi
`; //줄바꿈 선언 가능
문자열 줄바꿈 선언 가능
boolenValue = true;
undefinedValue = undefined;
nullValue = null; // 하위타입 - 어떠한 상위 타입(넘버,불린 등)에게 값으로 할당될 수 있음 이걸로 정의할 수 있음
하위타입 - 어떠한 상위 타입(넘버,불린 등)에게 값으로 할당될 수 있음 이걸로 정의할 수 있음
symbolValue = Symbol(); // 심볼이라는 함수로만 만들 수 있음 보통 객체에서 키로 사용하게 됨
{
symbolValue : 'hello'
}
es6의 심볼이라는 새로운 원시형 타입
// objValue = "33"; // 이런거 다오류남
objValue = { name: 'ony'};
objValue = { };
objValue = new String(33); // 뉴 하면 객체로 인식해서 오류가 안남
객체인 참조형 타입 1
let user1: { name: string, score: number};
user1 = {
name: 'ony',
score: 30
}
let user2: { name: string, score: number};
```ts
객체인 참조형 타입 2
```ts
let tuple2: [number,string];
let tuple3: [number,string,number];
tuple2=[1, "hello"]
tuple3=[1, "hello",3] //튜플도 제공한다
튜플
var let const
var score1 =0; //var 에서의 스코프는 함수 단위 이다 / 재할당 가능
let score2 = 200; //블록 단위 / 재할당 가능
const defaultScore = 0; //블록 단위 / 재할당 불가능
function outer(){
if (true){
var score = 0;
}
/* function inner(){
var score = 0; //펑션 안에서 선언되어있어면 밖에서 이 변수를 쓸 수 없음
}
inner() */
for (var i = 0; i < 3; i++) { // 포문 블락단위가 아니라 아우터 함수 전체기준으로 i 선언되어서
setTimeout(function(){
console.log(i); //출력이 1,2,3이 아니라 그냥 이미 증가가 다되어서 3으로 출력됨
},100)
}
console.log(score); //펑션 안에서 선언되어있어면 밖에서 이 변수를 쓸 수 없음 if블럭은 가능
}
outer();
var의 경우
function outerLet(){
if (true){
let score = 0;
score = 30;
//score = "30"; //초기에 앞에 선언한 형식과 다른 문자열을 넣으려고하면 오류남
let scor;
//let scor: number; // 이렇게 타입지정할 수 있음 - type annotation
scor = 30;
scor = "30"; // 이렇게 초기선언에 형식을 안정해주면 오류안남
}
//console.log(score); // if블럭안에 선언해도 밖에서 확인 불가능 에러남
for(let i =0; i<3; i++){ //let은 블락 단위기 때문에 각각의 순회될떄마다 다른 공간을 가질수 있어서
setTimeout( function(){
console.log(i); //i가 012값으로 출력됨
},100)
}
}
outerLet();
let의 경우
function outerConst(){ //상수
if (true){
const score = 100; //상수 이기때문에 초기선언 떄 값을 지정해줘야함, 값 못바꿈 재할당시 오류남
};
//console.log(score); // if블럭안에 선언해도 밖에서 확인 불가능 에러남 const도
}
const의 경우