분류 전체보기 147

타입스크립트) 배열 안 원소로 객체가 있을 경우 타입 선언

0. 글을 쓴 계기 - 오픈마켓 프로젝트를 하던 중, 아래와 같이 객체를 원소로 가지고 있는 배열을 타입 지정할 일이 생겼다. 저 OPTIONS 상수를 SelectPhoneBox 에 props로 내려줘야해서 props 에 타입을 지정해야하는 일이 생겼다. interface 로 객체타입 지정은 많이 해봤는데 배열안에 객체라... 1. 배열 안 객체 타입 지정 방법 - interface 로 선언하는 방법 1단계 : {value:'010' , name : '010'} 의 객체만 나타낼 수 있는 interface를 생성한다. 2단계 : OPTIONS 전체를 나타낼 수있는 interface를 생성하고 ObjectProps 를 불러와서 뒤에 [] 배열 표시를 해준다. 3단계 : props 옆에 붙여주면 된다. 2...

타입스크립트 에러) Type 'undefined' cannot be used as an index type.

✅에러원인 - 공통 버튼 컴포넌트를 만들고 있었다. theme.tsx 에서 colors를 props 로 받아오는 걸로 설정했는데 아래와 같이 에러가 생겼다. 에러메세지 : Type 'undefined' cannot be used as an index type. index 타입에는 undefined가 들어갈수 없다는 것이었다. interface ButtonProps에서 color 부분이 ? 옵션으로 설정되어있어서 string | undefined 로 인식될 것이다. ✅에러 해결 - 따라서, undefined 값을 처리해주는 Narrowing 기법을 삼항연산자로 표시했다. const colorStyles = css` /* 색상 */ ${({ theme, color }) => { const selected =..

타입스크립트 에러) Element implicitly has an 'any' type because expression of type 'string' can't be used to index type / indexable 타입

✅경축 🏌️25시간만에 에러 해결 ㅠㅠㅠㅠ 타입스크립트 + 리액트 프로젝트를 하던 중 버튼 공통컴포넌트를 만들면서 타입스크립트에서 에러가 났다... 타입스크립트를 안썼다면 금방 만들었을 버튼...25시간만에 에러를 해결해서 너무 행복하다😂 1) 해결한 에러 메세지 Type 'undefined' cannot be used as an index type. 2) 원인 인덱스 시그니처(Object[key]) 형태로 객체 접근 시 에러 ✅에러 해결 과정 지난 시간에(아래 블로그 참고) 버튼 컴포넌트를 만들었다. https://ella951230.tistory.com/entry/%EB%A6%AC%EC%95%A1%ED%8A%B8-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%..

타입스크립트 기초) as const

✅as const 설명 첫번째 예시 아래처럼 person 이라는 객체를 만들었다. 그리고 myFunc라는 함수의 매개변수로 '선은혜' 라고 리터럴 타입을 지정해주었다. myFunc에 person.name을 매개변수로 넣어줬는데 에러가 났다.. 왜일까? 에러메세지 : Argument of type 'string' is not assignable to parameter of type '"선은혜"' person.name 은 string 타입이라는 것이다. 즉 '선은혜' 리터럴 타입이 아니고, string 타입이라는 것이다. person 객체의 name 키에 마우스를 가져다 보면 (property) name: string 라고 나온다. 즉, 엄격한 리터럴 타입이 아니라 넓은 개념의 string 타입이기에 타입 ..

타입스크립트 기초) 타입 선언 & 타입 추론

✅ 타입 선언 // 타입스크립트는 변수, 매개변수, 리턴값에 타입을 붙이는 것이다. const a: string = "5"; const b: number = 5; const c: boolean = true; const d: undefined = undefined; const e: null = null; const f: any = "123"; // 아무타입이나 다 된다. any를 쓰면 자바스크립트가 되버림. any가 없어야함. 타입스크립트에서 any라는 걸 없애버리면됨 // 정확한 원시값 타입도 지정 가능하다 const g: true = true; // true만 값으로 할당할거야. const h: 5 = 5; // 숫자로 5만 값으로 할당할거야 const i: "고정원시값" = "고정원시값"; //con..

리액트+타입스크립트) styled-components theme 설정하기

✅ 글을 쓰게 된 이유 - 버튼 컴포넌트를 만드려고 하는데 타입스크립트에서 theme을 어떻게 설정해야할지 몰라서 정리해본다. ✅ GlobalStyle VS theme 그동안 프로젝트에서 GlobalStyle 에서 아래와 같이 :root를 이용해서 색상을 사용했었다. :root { --main-color:#FFB6B0; --main-disabled-color:#c8beab; --main-text-color:#ffffff; --sub-text-color:#767676; --border-color:#bdbdbd; } 보통은 GlobalStyle에는 reset 또는 공통적으로 사용(box-sizing과 같은 base Css규칙) 하는 css 가 들어가고, theme 에는 공통적으로 사용되는 스타일(media ..