TIL. TypeScript_기본타입

chloe·2021년 3월 17일
0

Typescript

목록 보기
1/8
post-thumbnail

Javascript의 강력한 장점이자 단점은 동적이라는 것이다.
추적이 안되는 객체들이 너무나도 많기에 속성의 변경이 너무나도 쉬우면서, 반대로 변경이 너무나도 쉬워서 잘못되었다는 것을 실행 중에 알게 된다.

TypseScript가 해결책이다. TypeScript는 기본적으로 변수에 타입을 지정해주면서, 코드를 추적해준다.

let a:number; //빨간 줄
a=1;
a=true //빨간 줄

위와 같이 타입을 고정시켜주는 역할을 한다.

TypeScript 기본타입

Boolean불리언

let isDone:boolean=false;

참/거짓 값

Number 숫자

let decimal:number=6;

String 문자열

let color:string="blue";
color='red';

Array 배열

배열 타입은 두 가지 방법으로 쓸 수 있다. 첫 번째 방법은 배열 요소들을 나타내는 타입 뒤에 []를 쓰는 것이다.

let list:number[]=[1,2,3];

두번째 방법은 제네릭 배열타입을 쓰는 것이다 Array<elemType>:

let list: Array<number>=[1,2,3];

Tuple 튜플

튜플 타입을 사용하면 요소의 타입과 개수가 고정된 배열을 표현할 수 있다. 단 요소들의 타입이 모두 같을 필요는 없다. 예를 들면 number,string이 쌍으로 있는 값을 나타내고 싶을 수 있다.

//튜플 타입으로 선언
let x:[string,number];
//초기화
x=["hello",10];//성공
//잘못된 초기화
x=[10,"hello"];//오류

Enum 열거

enum Color{Red,Green,Blue}
let c:Color=Color.Green;

기본적으로 enum은 0부터 시작해서 멤버들의 번호를 매긴다.멤버 중 하나의 값을 수동으로 설정하여 번호를 바꿀 수 있다. 예를 들어, 위 예제를 0대신 1부터 시작해 번호를 매기도록 바꿀 수 있다.

enum Color {Red=1,Green,Blue}
let c:Color=Color.Green;

또는 모든 값을 수동으로 설정할 수 있다.

enum Color {Red=1, Green=2, Blue=4}
let c:Color=Color.Green;

enum의 유용한 기능 중 하나는 매겨진 값을 사용해 enum멤버의 이름을 알아낼 수 있다는 것이다.

enum Color{Red=1,Green,Blue}
let colorName:string=Color[2];

console.log(colorName);//값이 2인 'Green'이 출력된다.

Any

애플리케이션을 만들 때, 알지 못하는 타입을 표현해야 할 수도 있다.

let notSure:any=4;
notSure="maybe a string instead";
notSure=false'

any타입은 기존에 Javascript로 작업할 수 있는 강력한 방법으로 컴파일 중에 점진적으로 타입 검사를 하거나 하지 않을 수 있다.
또한, any 타입은 타입의 일부만 알고 전체는 알지 못할 때 유용하다. 예를 들어, 여러 다른 타입이 섞인 배열을 다룰 수 있다.

let list: any[] =[1,true,"free"];
list[1]=100;

Void

void는 어떤 타입도 존재할 수 없음을 나타내기에, any의 반대타입같다. void는 보통 함수에서 반환값이 없을 때 반환타입을 표현하기 위해 쓰인다.

function warnUser(): void{
   console.log("This is my warning message");
}

void를 타입 변수를 선언하는 것은 유용하지 않은데. 왜냐하면 그 변수에는 null(--strictNullChecks을 사용하지 않을 때만 해당),undefined만 할당할 수 있기 때문이다.

Null and Undefined

타입스크립트는 undefined, null 둘 다 각각 자신의 타입 이름으로 undefined,null로 사용한다. void처럼 그 자체로 유용한 경우는 거의 없다.

let u:undefined=undefined;
let n:null=null;

기본적으로 null과 undefined는 다른 모든 타입의 하위 타입. 이건, null과 undefined를 number같은 타입에 할당할 수 있다는 것을 의미한다.
하지만, --strictNullChecks를 사용하면, null과 undefined는 오직 any와 각자 자신들 타입에만 할당 가능하다. 이는 많은 일반적인 에러를 방지하는데 도움을 준다.

Never

never타입은 절대 발생할 수 없는 타입을 나타낸다. 예를 들어, never는 함수 표현식이나 화살표 함수 표현식에서 항상 오류를 발생시키거나 절대 반환하지 않은 반환타입으로 쓰인다.

//never를 반환하는 함수는 함수의 마지막에 도달할 수 없다.
function error(message:string):never{
  throw new Error(message);
}

참고:https://typescript-kr.github.io/pages/basic-types.html

profile
Front-end Developer 👩🏻‍💻

0개의 댓글