Blockchain

#3 typescript - 2

Sila 2022. 6. 11. 23:33

이제 typescript, class 문법을 이용해 변수를 선언하고 군집형 데이터를 표현하는 법에 대해 알아보자.

 

1. class 선언

ts에서 하나의 객체 class를 생성할 때는 interface 명령어를 이용해 이 객체가 어떤 key들을 가질지,

 

그 key의 value의 데이터 타입은 어떤지를 미리 지정해주며 선언해야한다.

 

src/core 에 ex_class 폴더를 만들고 interface.ts 파일을 생성해 작성해주자.

/*  src/core/ex_class/interface.ts  */

interface User {
    name : string
    birth : number
    activation : boolean
    address : string
}

이렇게 User class를 선언했을 때, 이 class는 반드시 name, birth, activation, address 4개의 속성을 가지며,

 

각 속성의 value는 지정한 데이터 타입을 가져야한다.

 

이 class에 속하는 변수를 하나 아래에 선언해보자.

 

2. 변수 선언

/*  src/core/ex_class/interface.ts  */

const data : User = {
    name : 'lsj',
    birth : 19900101,
    activation : true,
    address : 'seoul'
}

console.log(data)

처음 class를 선언할 때 지정한 속성과 데이터 타입이 하나라도 일치하지 않으면 에러를 표시해줄 것이다.

 

3. 배열

우리가 배열을 선언할 때 데이터 타입이 array를 주는 것도 가능하지만 이보다는 그 배열에 들어 있는 element가

 

어떤 데이터 타입인지에 더 관심이 있는 경우가 많다.

 

그래서 ts에서는 데이터 타입을 표시할 때 배열인 경우 그 안에 들어가는 원소의 데이터 타입도 한 번에 표시해주는

 

문법을 제공한다.

/*  src/core/ex_class/interface.ts  */

let a : number[] = [1,2,3,4]
console.log(a)

여기서 변수 a는 숫자를 원소로 가지는 배열이다. 이를 표현하기 위해 원소의 데이터 타입 뒤에 []를 붙여준다.

 

4. 함수

함수를 선언할 경우, 매개 변수가 있다면 매개 변수의 데이터 타입과 (여러개가 있다면 각각 전부 지정) 함수의 리턴 값의

 

데이터 타입을 각각 지정해주어야 한다.

 

/*  src/core/ex_class/interface.ts  */

function binaryCode (num : number) : boolean {
    if ( num == 0 ) return false
    return true
}

console.log(binaryCode(0))
console.log(binaryCode(1))
console.log(binaryCode(2))

매개 변수 num (type : number)를 가지는 함수 binaryCode 는 리턴 (type: boolean) 으로 true/false 를 돌려준다는 것을

 

위와 같이 표현할 수 있다.

 

여기까지 했다면 interface.ts를 한번 ts-node 명령어로 실행해보자.

 

다음과 같은 결과가 나온다면 문제가 없는 것이다.

{ name: 'lsj', phone: 1065313476, army: true, address: 'seoul' }
[ 1, 2, 3, 4 ]
false
true
true

다음 글에서는 지금까지 배운 기본적인 ts 문법을 바탕으로 블럭체인의 요소인 블럭을 구현해보자.

'Blockchain' 카테고리의 다른 글

#6 chain  (0) 2022.06.12
#5 block 검증  (0) 2022.06.12
#4 block 생성  (0) 2022.06.12
#2 typescript  (0) 2022.06.11
#1 Block의 요소  (0) 2022.06.08