본문 바로가기

Web/TypeScript

(6)
[TypeScript] Interfaces type Team = "red" | "blue" | "yellow"type Health = 1 | 5 | 10interface Player { nickname: string, team: Team health: Health}Interfaces는 한 가지 용도만을 가짐object 모양을 특정하기 위함 TypeScript에게 object 모양을 알려주기 위한 방법은 1. Type - 좀 더 유연함2. Interfaces - 객체 지향 프로그래밍의 개념을 활용해서 디자인 interface User { name:string}// interface는 새 타입, 필드를 정의할 떄 기존 이름 사용 가능interface User { nickname:string}interface Player e..
[TypeScript] 객체지향 - Classes * JavaScript는 제공하지 않는 기능들private, publicclass Player { constructor( private firstName:string, private lastName:string, public nickname:string ) {}}const seojin = new Seojin("seojin", "moon", "문");seojin.firstName # errorseojin.nickname abstract 클래스, abstract 메소드(클래스 안의 함수)abstract class User { constructor( constructor( private firstName:string, # priva..
[TypeScript] 다형성(Polymorphism) type SuperPrint = { (arr: number[]) : void (arr: booleanp[) : void (arr: string[]): void}const superPrint: SuperPrint = (arr) => { arr.forEach(i => console.log(i))}superPrint([1, 2, 3, 4])superPrint([true, false, false])superPrint(["a", "b", "c"])> void, boolean, unknown 이런 건 concrete type type SuperPrint = { # 타입스크립트에게 이 callsignature가 generic을 받는다는 걸 알려주는 방법 (arr: TypePla..
[TypeScript] 기본 문법 - 함수 함수를 선언하는 여러가지 방법#1 function add(a:number, b:number): number { return a+b}#2const add = (a:number, b:number) => a+b#3; call signatures, 함수의 파라미터와 리턴 타입을 명시하는 것type Add = (a:number, b:number) => number;const add:Add = (a,b) => a + b Overloading- 직접 쓸 일은 많지 않겠지만 외부 패키지나 라이브러리에서는 오버로딩을 많이 사용하기 때문에 알아둘 필요가 있음- 함수가 서로 다른 여러 개의 call signatures를 가지고 있을 때 발생type Add = { (a:number, b:number) : numbe..
[TypeScript] 기본 문법 - Type Implicit TypesJavaScript처럼 변수만 생성하고 넘어가도 타입 추론 가능let a = "hello"a = "bye"a = 1 # error Explicit Types데이터와 변수의 타입을 명시적으로 정의let : = let a = "hello"let b : boolean = "x" # error Object에 Type 선언const player : { # 타입 선언 name: string, # 반드시 필요 age?:number # ?를 붙이면 optional} = { # 실제 내용 name:"seojin"}if(player.age  > player를 여러 개 만들고 싶다면Alias 타입type Player = { name:string, age..
[TypeScript] 를 쓰는 이유 TypeScript를 사용하는 가장 큰 이유는 타입 안정성 때문=> 코드에 버그가 매우 많이 줄어듦, 런타임 에러가 줄어듦, 생산성 증가 JavaScript는 타입 안정성이 없는 언어임JavaScript는 매우 유연한 언어라, 개발자가 멍청한 코드를 짜도 이해하려고 함즉, 에러를 띄우지 않으려고 함1. [1, 2, 3, 4] + false> '1,2,3,4,false'# boolean 타입인 false가 그냥 string이 돼버림, JavaScript는 이를 허용2. function divide(a, b) { return a/b}divide("xxxx")> NaN# 코드를 실행하고 NaN를 리턴함, JavaScript는 함수를 올바르게 사용하도록 강제하지 않음3.const nico = { name:"ni..