타입스크립트 TS 공부 #2 기초 타입

사공 오·2022년 4월 20일
0

TS 기초 공부

목록 보기
2/7
post-thumbnail

기초타입

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의 경우

0개의 댓글