본문 바로가기

프론트엔드

(37)
[TS] Class 1. 필드값 타입지정모든 자식 object들에게 속성을 부여해주고 싶으면 필드에 변수처럼 만든다. (var, let 키워드 안씀)class Person { data :number = 0; // 타입지정은 꼭 하지 않아도 자동으로 되니까 지정하지 않아도 무방함}let person1 = new Person('ha0');let person2 = new Person('hakoo');person1.data = 2;2. constructor 타입지정js와는 다르게 constructor함수를 쓰려면 미리 필드값으로 정의해줘야한다.필드값만으로도 지정할 수 있는데 constructor가 별도로 존재하는 이유는 파라미터를 받기 위함.class Person { name :string; // 필드값 미리 지정해야 ..
Type Aliases & Literal Types 1. Type Aliases (타입변수)⭐️ 타입이 너무 길고 복잡하면 변수에 넣어서 쓸 수 있다. (타입 별칭을 사용하여 사용자 정의 타입 만들기)type 타입명 = 타입타입변수에는 온갖걸 다 넣을 수 있다.타입명은 대문자로 시작하는 것이 작명관습이다. (일반 변수와 차별화 두기 위함)타입변수는 재정의가 불가능하다.1-1. Type Aliases extend (타입변수 합치기)type 타입명 = 타입명 | 타입명📌 object 타입변수 속성 합치기type 타입명 = 타입 & 타입1-2. 함수에 type alias 지정하기type 함수타입 = (a :파라미터타입) => 리턴타입함수 type alias를 부착하려면 함수표현식을 써야한다. let 함수명 :타입변수명 = function(){}1-3. met..
함수타입, void타입 1. 함수에 타입 지정하기function 함수(x :파라미터 타입) :리턴값 타입 {}타입지정된 파라미터는 필수 파라미터가 된다. (안넘겨주면 에러발생)파라미터가 옵션일 경우 function 함수(x? :number) 로 지정하면 된다.function 함수(x :number | undefined) 와 같음rest 파라미터 타입지정function 함수(...a :number[]) { console.log(a)}함수(1,2,3,4,5);destructuring 타입지정type Obj = {student: boolean, age: number}let 오브젝트 :Obj = {student: true, age: 20}function 함수({student, age}:Obj){ console.log(student, ..
타입스크립트 기본 타입정리 1. primitive types변수명 :타입명지정한 타입과 다른 형식의 값을 변수에 할당하면 에러를 내준다 2. Array type변수명 :타입[]📌 Tuple 타입배열은 배열인데 각 요소의 타입과 길이가 정해져있는 배열.변수명 :[타입, 타입] 과 같은 형태로 할당한다.각 요소의 타입과 다른 타입을 할당하거나 지정된 길이가 아닐 경우 에러를 발생한다.예외적으로 Tuple타입 배열에 push()로 요소를 추가할 경우, 타입스크립트가 에러를 잡아주지 못한다.tuple안에 옵션표시 가능하지만 순서개념이 깨지게는 적용할 수 없다. let arr :[string, boolean?, number] //let arr :[string, boolean?] = 'a'rest parameter에 활용가능 functio..
Typescript 시작 1. 타입스크립트를 쓰는 이유?⭐️ Typescript란?자바스크립트 대용품 같은 언어로, 자바스크립트 문법을 그대로 이용하지만 타입을 업그레이드해서 쓸 수 있는 일종의 자바스크립트 업그레이드 버전이라 할 수 있다.🤔 그래서 사용하는 이유는?자바스크립트는 Dynamic Typing이 가능한 언어이기 때문에, 타입에 대한 제지 없이 자기가 알아서 타입을 바꿔준다. (1 - '5'일 경우 5를 number타입으로 바꿔서 -4가됨)타입스크립트는 이런걸 전부 런타임 전에 에러로 잡아주는데, 이거 하나 때문에 쓰는 언어가 바로 타입스크립트이다. (type관련 버그들을 발생시키지 않기 위함)편리해보이지만, 프로젝트가 커질 경우 이런 자유도&유연성은 단점으로 작용한다.에러메시지도 더 정확해진다.엄격한 타입룰 덕분에..