typeScript

· TypeScript
타입스크립트를 이용해 새로운 프로젝트를 진행하던 어느날 처음 보는 에러를 마주쳤습니다. element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ duelist: boolean; recon: boolean; sentinels: boolean; controllers: boolean; nodicision: boolean; }'. no index signature with a parameter of type 'string' was found on type '{ duelist: boolean; recon: boolean; sentinels: boolean; controllers: boo..
저번 시간에 Portal을 이용해 모달을 구현하려 했지만 상단 header바에 사용하기 적합하지 않다는 팀원의 의견을 반영해서 독립된 컴포넌트를 만들어 적용하기로 했다. 우선 헤더에 사용할 모달 컴포넌트의 코드를 보자 import { ReactComponent as HomeSVG } from 'assets/svg/home.svg'; import { ReactComponent as SettingSVG } from 'assets/svg/setting.svg'; import { ReactComponent as LogoutSVG } from 'assets/svg/logout.svg'; import { Link } from 'react-router-dom'; interface UserInfo { accountMo..
모달을 처음 만들어 보기도 하고 타입스크립트도 처음 다루어서 정말 어려웠다.... 오늘 완성은 하지 못했지만 React의 Portal이라는 기능을 이용해 fullPage 모달에 사용할 모달을 만들었다. React Portal이란? 부모 컴포넌트의 DOM 계층 구조의 밖에 있는 DOM노드로 자식(children)을 렌더링하는 방법을 제공할 수 있게 해주는 친구 ReactDOM.createPortal(child, container) 위와같이 사용해주면 되는데, child에 포탈을 통해 밖으로 보낼 대상이 되는 컴포넌트, container는 포탈을 통해 child가 이동할 곳 한마디로 child를 렌더링할 DOM Element를 넣어준다는 것이다. Portal을 통해 모달을 만들려면 모달 컴포넌트가 렌더링 될..
프로젝트 진행을 위해 공부를 속성으로 마치고, 처음으로 할당된 업무... 상단 헤더 제작이였다. 우선 헤더는 Figma에서 설계한대로 제작했다. 위와 같은 모양으로 제작을 했으며 헤더가 위아래 스크롤시에도 고정되게 했다. 결과는 아래와 같다. 아이콘 이미지의 모듈화 또한 했으며 코드는 아래와 같다. import { Link } from 'react-router-dom'; import icon from 'statics/img/icon/gamalda_icon.png'; import 'styles/components/modules/icon/icon_default.scss' type Test = { link: boolean } // link Prop을 이용해서 이미지만 필요할 때와 link와 같이 사용할 때 구..
· TypeScript
Generic 제네릭 클래스나 함수, 인터페이스를 다양한 타입으로 재사용할 수 있다. function getSize(arr: T[]): number{ return arr.length; } const arr1 = [1, 2, 3]; getSize(arr1); const arr2 = ['a', 'b', 'c']; getSize(arr2); const arr3 = [false, true, true]; getSize(arr3); const arr4 = [{}, {}, {name: "Tom"}]; getSize(arr4); interface Mobile { name: string; price: number; option: T; } // option에 제네릭을 이용할 수 있다. 혹은 객체의 모습이 정해저 있다면 다..
· TypeScript
LitererType 리터럴 타입 const userName1 = 'bob'; // 문자열 리터럴 타입 let userName2 = 'tom'; const는 불변값이며 let은 스트링 타입으로 고정되어있기에 다른 타입의 값을 배정하면 안된다 다른 타입도 넣을려면 let userName3: string | number = 'Tom'; userName3 = 3; 타입으로도 만들 수 있다. type Job = 'police' | 'developer' | 'teacher'; 숫자형 리터럴 타입도 이용할 수 있다. type Grade = 1 | 2 | 3; interface User { name: string; job: Job; grade: Grade; } const user: User = { name: "bob..
58청춘
'typeScript' 태그의 글 목록