TS에서 데이터 타입을 지정해 주는 방법은 다음과 같다
const name: string
1. 원시타입
- 타입 스크립트에서도 String 및 Number 형과 같은 타입을 다룬다. 통상 데이터 타입을 대문자로 쓰지만
타입스크립트의 주요 원시 타입은 모두 소문자이다.
2. 객체타입
typescript에게 객체 타입임을 알려주기
object 또는 {} 라고 타입 선언을 해주면 된다.
const obj1: object
const obj2: {}
3 . 배열
- 안에 담길 데이터 형[] , 이렇게 선언해주면 된다
const arr1: string[] // string형 데이터 타입이 담긴 배열 선언
const arr2: any[] // any, 말그대로 어떤 데이터 타입이든 담길 수 있는 배열 선언
4. 튜플
Tuple : js에는 없는 데이터 타입이다. 컴파일 후 js에서는 일반적인 배열로 인식하지만 타입스크립트에서는 특수 배열을 작성하게 해준다. 예를 들어 어떤 배열의 n번째 인덱스에 어떤 데이터 타입을 가진 데이터가 입력되어야 하는지 지정해줄 수 있다.
배열의 요소를 n개로 지정해서 그 이상의 데이터를 입력해도 들어가지 않게 제한할 수 도 있다.
즉, 튜플은 특수배열로, 길이와 데이터 타입도 고정할 수 있다. 컴파일 후에는 JS에서 일반 배열로 인식하지만 TS에서는 튜플로 인식한다.
하지만 조심해야할 부분이 있다. push 메서드로 입력하는 것은 막을 수 없다
const arr1:[number, string]
arr1[1] = 'pepper' // Error 발생, 첫번째 인덱스에는 number형만 들어와야하기때문
arr1 = [ 0 , 'pepper', 'salt'] // Error 발생
======================================================
const arr2:[number, string]
arr2 = [ 3, 'cat']
arr2.push('dog')
console.log(arr2)
=> [ 3, 'cat', 'dog']
내 추측으로는 아마 컴파일 후 JS에서 일반배열로 인식하기 때문이 아닌가 싶다. push() 메서드는 배열의 끝에 요소를 하나 추가하고 새로운 길이를 반환하는 기능을 하기 때문이다.
+) js에서 number 형은 기본적으로 float 형이다. 즉
<js>
5 == 5.0
이라는 뜻이다.
연산을 출력할 때 string과 number 형이 같이 있으면 모두 string 형으로 바꾼다
728x90
'JAVASCRIPT > TypeScript' 카테고리의 다른 글
<TypeScript, JavaScript> Class 란? -2. 클래스, 인스턴스화와 상속의 차이 / super() (0) | 2023.03.17 |
---|---|
<TypeScript, JavaScript> Class 란? -1. 클래스의 개념 / 정적 메소드 / 동적 메소드 / 프로퍼티 / (0) | 2023.02.22 |
<TypeScript> 기본 타입 -2 / ENUM 타입/ Any / UNION / Alias / Literal (0) | 2023.02.16 |
<TypeScript> 타입스크립트 설치/ 컴파일 툴 설치 / 코드 내용 변화 감지 설정/ 관찰모드 ( tsc-watch ) (0) | 2023.02.16 |
<TypeScript> 타입스크립트 사용이유 (0) | 2023.01.06 |