[TypeScript]타입

Kyungoh Kang·2021년 1월 11일
0

typescript

목록 보기
1/2

TypeScript

=microsoft에서 개발한 javascript의 슈퍼셀 언어.

1. 기본 타입

let isNumber: number = 3; //변수명: 타입 = 값;
  • 기존 자바스크립트에서 썼던 타입들 다 들어감 (string, number, array, ...)
  • Array 선언은 조금 다르다
let arr: number[] = [1,2,3]; //배열명: 타입[] = [선언된 타입만 들어감]
  • 자바스크립트에 없었던 타입
  1. any: 값의 타입이 정확하지 않을때 어떤 값이던 넣을 수 있음
  2. readonly 타입 속성(?)
let arr: readonly number[] = [1,2,3];
// 배열 내의 값은 수정이 안되며 읽기만 가능.
  1. tuple: 정해진 타입과 길이의 배열
let usr: [number, string, number] = [1, "1", 3];
//이 외의 값이 들어가거나 길이가 다르면 에러 남
//기본적으로 배열에 추가 할당은 안되지만, push()나 slice()를 이용해 길이를 바꾸는것은 가능
  1. enum: 숫자나 문자열 값의 집합에 이름을 부여할 수 있는 타입. 값의 종류가 일정한 범위로 정해져 있을 때 유용하다. 수동으로 값을 바꿀 수 있고 바꾼 값부터 뒤로 1씩 증가한다.
enum week {
	sun, //0
  	mon, //1
  	tue, //2
  	...
  	sat //6
}

console.log(week[0]) //sun

enum color {green='green', red='red'} //이렇게 문자열로 줄수도 잇음
  1. unknown: any와 비슷하게 어떤 값이던 할당해줄 수 있지만 uknown을 할당하지는 못한다.

  2. 객체 사용: 키의 타입을 하나하나 지정해줄 수 있다.

  3. null, undefined: any나 unknown보다 제약이 없는 타입 혹은 값.

let str: string = null | undefined;
let idk: null = undefined;
let idk2: undefined = null; //서로의 타입이 되어줄 수 있음.
  1. void: 일반적으로 값을 반환하지 않는 함수의 타입에 쓰인다.
	function test(name:string): void {
     	console.log("hello"); 
    }
/// void자리가 함수의 반환값을 선언해주는 자리

	const hello: void = hello('world');
// void타입 함수의 실제 반환 값은 undefined;
  1. Never: 절대 발생하지 않을 값, 어떤 타입도 적용할 수 없음.
    ==> 보통 빈배열을 타입으로 잘못 준 경우에 콘솔에 never가 뜬다.
  2. Union: 2개 이상의 타입을 줄때
let test: (string | number) = 3 or "3"; //둘 다 에러 안남
  1. intersection: &를 이용해 타입을 조합
 // Error -  TS2322: Type '{ name: string; age: number; isValid: boolean; }' is not assignable to type 'IUser'.

interface user1 {name: string, age: number};
interface user2 {name: string, smokes: boolean};

const userData: user1 & user2 = {name: 'Bob', age: 33, smokes: false};

console.log(userData);
  1. 함수
function test(a:number, b:number) => {return a+b};
console.log(test(3,5)); //8

const test2 = (a: number, b: number) :number => {return a+b}
console.log(test2(9, 7)); //16

함수, 인터섹션, void, null, undefined, any, unknown, enum, tuple 요정도 기억하면 자바스크립트랑 겹치는게 많아서 괜찮을듯.

0개의 댓글