본문 바로가기
2022년/Typescript_blockchain

#2. How Typescript Works

by 헤옹스 2022. 4. 20.

타입스크립트 : 프로그래밍 언어.

strolngly typed(강타입)

컴파일러를 통해 기계가 실행할 수 있는 다른  코드로 변환됨.

타입스크립트는 컴파일러에 의해 js로 변환됨. 브라우저는 타입스크립트가 아니라 js를 이해하기 때문.

typescript는 개발자가 실수하지 않도록 보호해줌.

=> 어떻게 보호해줄까?

 

 

불안정한 js언어를 돌려줌.

타입스크립트 코드가 실행되기 전에 보호장치가 작동함.

에러가 발생할것 같은 코드를 감지하면, 아예 컴파일 되지 않음.

변환된 자바스크립트 안에서 실수가 일어나지 않게 하기 위해. 

 

 

예시 #1)

const nico = { nickname : "nick" }

nico.hello()

// 빨간줄로 에러 발생해줌.

 

예시 #2)

[1,2,3,4] + false

// 타입 에러 발생.

 

예시 #3)

function divide(a, b) {

    return a/b

}

divide("hello")

// 인자 2개 필요, 타입 string 에러(숫자여야 함)

 

 

예시 #4) _ 타입추론!!

const player = {

    age:12

}

player.age = false

// 숫자에서 boolean으로 타입을 바꿀 수 없다는 에러 발생.

 

 

타입 시스템

모든것의 타입을 정해서 명시해줘서 컴파일러에게 알려줘야 함.

VS.

typescript가 타입을 추론해줌.

 

예시 #1)

let a = "hello"

// a 가 string이어야 한다는 것을 알고 있음.

a = "bye"

// string에서 string으로 바뀌었기때문에 불평하지 않음.

a = 1

// string에서 number으로 값을 바꾸려고 하기 때문에 오류 발생시킴..

 

예시 #2)

## 타입 명시하는 방법

let b : boolean = "x"

// 변수 b가 boolean이어야 한다. Type Checker 과 소통하는 법.

let b : boolean = false

let c = [1,2,3]

// number[]

c.put("2")

// array의 요소에 다른 타입을 섞지 않음.

 

let d = []

d.puch("1")

// number들의 array가 필요할 경우 명시적으로 표시해줘야함.

let d : number[] = []

d.push(1)

 

 

 

기본적인 타입 이외의 타입

 : 콜론 + 타입 으로 표시

 

let a : number = 1;

let b : string = "il";

let c : boolean[] = [true]

 

let a : number[] = [1,2];

let b : string[] = ["il", "1"];

let c : boolean[] = [true]

 

let a : number= [1,2];

let b : string = ["il", "1"];

let c : boolean = [true]

=> 가능한 Typescript로 추론하게 하는것이 좋음.

 

 

const player = {

    name:"nico"

}

player.name = 1

 

 

 

 

 

 

 

 

 

 

'2022년 > Typescript_blockchain' 카테고리의 다른 글

#1. Introduction  (0) 2022.04.20