개발공부 임고미

[Typescript] 타입의 종류 - 원시타입 / 객체타입 / 기타 본문

카테고리 없음

[Typescript] 타입의 종류 - 원시타입 / 객체타입 / 기타

임고미 2022. 7. 4. 16:19
728x90
300x250

목차

0. 들어가며
1. 고쓰자 TypeScript : 타스인가 ?
2. 타입의 종류

1. 원시타입

string, number, BigInt, boolean, null, undefined, symbol

1 ) string

 
let str: string;
str = '123';
str = 123; // Error

2) number

let num: number;

num = 123;
num = 123.456;
num = '123'; // Error

3) BigInt
 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체입니다.

const theBiggestInt = 9007199254740991n;
const alsoHuge = BigInt(9007199254740991);
// ↪ 9007199254740991n
const hugeString = BigInt("9007199254740991");
// ↪ 9007199254740991n
const hugeHex = BigInt("0x1fffffffffffff");
// ↪ 9007199254740991n
const hugeBin = BigInt("0b11111111111111111111111111111111111111111111111111111");
 
4) boolean
 
var bool: boolean;

bool = true;
bool = false;
bool = 'false'; // Error

5) undefined
값이 비었는지 안비었는지 결정되지 않은 상태로, 타입 선언으로는 잘 사용 x (undefined이외의 값이 들어오면 전부다 에러가 나기때문에 타입으로는 잘 사용안합니다.)

let un: undefined;

un = undefined;
un = 1 //error

 

6) null 
값이 명확하게 없다는것을 표현 

undefined null
타입에서 값이 없을 수 있는 경우?
o (테이터 타입이 없거나, 아직 결정되지 않은 경우) x
값이 있거나 없거나?
x o

2. 객체타입

object, array

7) object
타입정의로 잘 사용하지 않습니다. 왜냐면, 뭐든 object면 다 된다는건데 TypeScript에서는 좀 더 구체적으로 적어주는게 좋기때문입니다.

let obj: object = { name: 'NAME', age: 29 };

obj = { A: 'A', B: 'B' };

8) Array
array로 쓰기보다는, string[] / number[]  등으로 많이 선언됩니다.

2. 기타

9) unknown
리턴값이라던지 타입을 정해주지 않았을때 사용 (어떤 타입이든 허용)

let valueNum : unknown = 10;
let valueStr : unknown = 'unknown';

console.log(valueNum.length); // error
console.log(valueStr.length); // error

unknown 타입으로 변수를 정의하면 컴파일러에게 '변수의 타입이 unknown이라 어떤 값이든 올 수 있습니다,
그래서 엄격하게 검사해라'라고 요청하는 것과 동일합니다.

이 경우 조건문을 함께 사용해주면 에러가 사라집니다.

let valueNum: unknown = 10;
let valueStr: unknown = "unknown";

if (typeof valueNum === "number") {
  console.log(valueNum.length); // 에러는 사라졌지만, number type에는 length가 없어서 error발생
}

if (typeof valueStr === "string") {
  console.log(valueStr.length);
}

 

10) any
어떤 것이든 다 됨

🛎 unknown과 any의 차이? unknown은 아직 결정되지 않은 타입이라면, any는 말 그대로 뭐든 허용한다는 의미

따라서 unknown은 조건으로 타입체크를 해서 작업해야하므로 any보다는 안전한 타입니다. 

11) void
함수에서 아무것도 리턴하지 않는 경우 
- 생략 가능한 타입으로 타입설정으로는 잘 쓰지 않는 편이다.

12) never
함수에서 절대 리턴하지 않는경우에 선언하는 경우

참고 : https://developer-talk.tistory.com/198

 

[TypeScript]타입스크립트 any, unknown 차이

TypeScript에는 다른 프로그래밍 언어에는 존재하지 않는 타입들이 존재합니다. 그중에서 any, unknown이 두 가지 타입은 제대로 이해하지 않으면, 상당히 헷갈리는 타입이며, 스택오버플로우에서도

developer-talk.tistory.com

 

728x90
300x250
Comments