본문 바로가기

TypeScript5

rest parameter, destructuring rest parameter 데이터의 개수가 정해져 있지 않은 다수의 데이터를 rest parameter라고 한다. 사용법은 간단하다. // 기본 사용 방식 // 함수 파라미터 이름 앞에 ... 을 붙인다. function func(...param) { console.log(param); } func(2,3,5,4,46,6,4,6,76,4,3); // 파라미터가 여러개일 때는 맨 뒤에 rest parameter를 넣어야한다. function func(a, b, ...param) { console.log(param); } func(2,3,5,4,46,6,4,6,76,4,3); // 파라미터의 타입 선언 방식은 기존과 같다. // 유니온 타입으로 선언해서 다양한 타입을 담을 수 있는 것도 기존과 같다. fun.. 2022. 1. 5.
typescript 에서 DOM 제어 셀렉터는 여러가지 방법이 있으니 편한대로 써도 된다. 주요점은 DOM에 있는 Element를 참조할 때 종류에 따라 다른 타입을 찾아야 한다는 점이다. 아래 코드를 보면 어떤 것은 HTMLAnchorElement, 어떤 것은 HTMLImageElement 등으로 나뉘어져 있는 것을 볼 수 있고 그 외에도 다양한 종류가 있다. let title = document.querySelector("#title"); if(title != null) { // title의 innerHTML 속성 변경 title.innerHTML = "제목 변경" } if(title instanceof Element) { } let title2 = document.querySelector("#title") as Element; if(t.. 2022. 1. 5.
type alias & readonly & type alias extends, literal type과 as const 타입을 다 기재할 필요 없이 변수에 담아 사용 가능하다. // 아래 변수의 타입을 let value: string = "lee"; // alias해서 사용 type Name = string; let newValue: Name = "lee"; const 변수는 값을 바꿀 수 없지만, object의 내용은 바꿀 수 있다. 그래서 그 값을 변경하지 못하도록 readonly로 만들 수 있다. const name = "lee"; name = "kim";// 에러 const value = { name : "lee", age : 25 }; value.name = "kim";// 에러 안남 type Person = { readonly name : string, age : number } const newValue : .. 2022. 1. 1.
(Union | any | unknown) 타입들, 안전하게 코딩하기 위한 Narrowing과 Assertion에 대한 짧은 이야기 특수한 타입으로 볼 수 있는 세가지 타입에 대해 이야기한다. Union은 여러개의 타입 중 하나가 들어갈 수 있는 것(or 개념) any는 js처럼 모든 타입을 허용한다. 연산 등에서도 에러를 뱉지 않기 때문에 사실상 ts를 사용하는 의미를 상실한다. unknown은 any와 용도가 비슷하지만 몇가지 상황에 대해 타입 체크를 하여 연산 등을 허용하지 않아 더 안전하다. any를 사용해야 한다면 unknown으로 하자. 예제는 아래 // 여러가지를 쓸 수 있는 유니온타입 type Union = (string | number | boolean)[] let members: Union = [1,2,3,'lim',true]; // 아무거나 다 되는 애니타입 // 타입스크립트의 의미가 없어진다. let ay: an.. 2021. 12. 29.
Typescript 기본 문법 정리 typescript의 간단한 기본 문법을 정리한다. 기본적으로 타입스크립트의 사용 목적 자체가 특정 객체(변수, 함수, 클래스의 파라미터 등등)에 타입을 지정하고 다른 타입의 사용을 막아서 예기치 않은 에러를 막기 위함이다. 코틀린의 문법과 상당히 유사하게 사용되기 때문에 형태에 이질감은 없었다. 아래 나열 // 변수 만들기 // 문자만 넣을 경우 let name1: string = 'kim'; // name1 = 1; // 에러 남 // 문자열 배열 let array: string[] = ['김','박']; // let array1: string[] = ['김',3]; // 문자열 아닌걸 넣으면 에러 let obj: { name: string } = { name: 'kim'}; let obj1: { n.. 2021. 12. 29.