이제 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 |