Home [TS] 타입스크립트 첫걸음 2편(기본 타입에 대해 알아보자)
Post
Cancel

[TS] 타입스크립트 첫걸음 2편(기본 타입에 대해 알아보자)

타입스크립트 첫걸음 2편

기본타입에 대해 알아보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// JS 문자열 선언

//var str = 'hello'

//TS 문자열 선언
const str: string = "hello";

//ts 숫자
let num: number = 10;

//ts 배열
let arr: Array<number> = [1, 2, 3];
let heroes: Array<string> = ["Capt", "thor", "hulk", 10]; // 10은 에러가 난다.
let items: number[] = [1, 2, 3];

// TS 튜플

let address: string[] = ["gangnam", "pangyo"];

let newadress: [string, number] = ["gangnam", 100]; // 튜플은 배열의 각각 인덱스에 타입이 정의된다.

// ts 객체
let obj: object = {};

// let person: object = {
// name: "capt",
// age: 100,
// };

let person: { name: string; age: number } = {
  name: "human",
  age: 40,
};

// ts 진위값
let show: boolean = true;

함수의 타입선언

함수의 타입을 정의하는 최종 방식

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// parameter 에 타입을 정의할 수 있다.
function sum(a: number, b: number) {
  return a + b;
}
sum(10, 20);

// 함수의 반환 값에 타입을 정의하는 방식
function add(): number {
  return 10;
}

// 함수에 타입을 정의하는 방식(최종)
function sum(a: number, b: number): number {
  return a + b;
}

파라미터 개수를 제한하는 타입스크립트 성질

1
2
3
4
5
// 타입스크립트에서는 파라미터의 개수가 다르면 오류가 난다. 파라미터의 개수를 제한하는 타입스크립트의 성질.

sum(10,20) // 30
sum(10, 20, 30, 40) ; // 오류
-> 자바스크립트의 경우는 그것의 유연한 성질 때문에 오류가 나지않는다.

함수의 Optional Parameter

1
2
3
4
5
6
7
//함수의 옵셔널 파라미터
function log(a: string, b?: string) {
  // 옵셔널 파라미터의 경우 question mark 를 붙여서 필수값이 안되게 할 수 있다.
}

log("hello world"); // 필요에 따라 파라미터를 한개만 넣을 수 있다.
log("hello ts", "abc");

인터페이스

인터페이스는 명세같은 것이다. 어떠한 로직의 변경이나, 함수처럼 작동하지는 않지만 미리 지정해둔 타입이 입력되지 않고 휴먼에러나 제이슨 같이 의도하지 않은 타입이 입력될 경우는 에러를 발생시킨다.

1
2
3
4
interface User {
  age: number;
  name: string;
}

변수에 활용한 인터페이스

1
2
3
4
5
let seho: User = {
  // 반복되는 타입에 대해서 코드를 줄여준다.
  age: 31,
  name: "성린",
};

함수에 인터페이스 활용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 함수에 인터페이스 활용
const getUser = (user: User) => {
  console.log(user);
};

const capt = {
  name: "캡틴",
};

const capt2 = {
  name: "캡틴",
  age: 25,
};

getUser(capt); // user 의 객체 형태가 맞지않아 에러가 나게 된다.
getUser(capt2); // 타입이 맞기 때문에 에러가 나지 않는다.

함수 스펙에 인터페이스 활용

실무에서는 앞으로 사용할 함수를 미리 정의해놓고 필요하면 가져와서 쓸수 있게끔 만든것.

1
2
3
4
5
6
7
8
9
// 함수의 스펙에 인터페이스를 활용
interface SumFunction {
  (a: number, b: number): number; // 인자의 타입과 결과값의 타입을 미리 지정해 둘 수 있다.
}

let sum: SumFunction;
sum = function (a: number, b: number): number {
  return a + b;
};
This post is licensed under CC BY 4.0 by the author.

[JS][OOP] 객체지향 5원칙(SOLID)- 단일 책임 원칙 (Single Responsibility Principle)

[TS] 타입스크립트 첫걸음 1편(tsconfig.json 설정하기)