[typescript] 'Timeout' 형식은 'void' 형식에 할당할 수 없습니다. setTimeout에서 뭔가 리턴하는데 그거 자체를 promise로 처리하고 싶다면 이렇게 쓰면 된다. 1. setTimeout 자체를 promise로 감싸기 return new Promise((res, rej) => setTimeout(async() => { return await this.something(); }, 6000)); 이로케~ Javascript/typescript 2024.03.25
[react][typescript] 'React'는 UMD 전역을 참조하지만 현재 파일은 모듈입니다. 1. React를 import 해주기 import React, { createContext, useState } from "react"; 앞에 import React 부분을 넣어주면 된다. Javascript/typescript 2024.03.14
[typescript] 'this'에는 형식 주석이 없으므로 암시적으로 'any' 형식이 포함됩니다. 타스에서 뭔가 작업하다보면 this에 위와 같은 에러가 뜸. 빠른 수정에는 화살표 함수를 쓰면 된다는데 그래도 에러는 사라지지 않는다. 이럴때 해결하는 방법! 1. tsconfig 수정 { "noImplicitThis": false } compilerOptions안에 있는 noImplicitThis를 false로 바꿔주면 된다. 아니면 this에 타입을 any말고 정확하게 짚어주면 됨. Javascript/typescript 2024.03.13
[typescript] 'Element' 형식에 'style' 속성이 없습니다 왜~~~~~~~~~~~라고 하신다면 아래와 같이 수정 필요 1. 타입 따로 설정해주기 wrapper.querySelectorAll(".a").forEach((a: HTMLElement) => a.style.top = "10px"); 다른거는 잘만 추론하면서 이거는 또 HTMLElement라고 안써주면 에러를 뱉으신다. Javascript/typescript 2024.02.19
[typescript] 산술 연산의 왼쪽은 'any', 'number', 'bigint' 또는 열거형 형식이어야 합니다. sort로 정렬하려고 했는데 이런 에러가 뜬다면 이렇게 비교해주면 된다. 1. getTime 활용 data.slice().sort((a: any, b: any) => new Date(b.created).getTime() - new Date(a.created).getTime()) new Date()를 쓴다면 getTime으로 타입을 숫자로 뽑아주면 빼기가 가능해져서 에러가 사라짐. Javascript/typescript 2024.02.05
[React][typescript] React.KeyboardEvent React.MouseEvent 동시에 쓸때 예를들어 검색input과 검색버튼에 같은 함수를 건거라고 보면 됨. 그 대신 input은 keydown이벤트로, 버튼은 click이벤트로 걸어서 keydown일때는 엔터키 체크하고 click은 그냥 검색하고 뭐 그런식으로 하려는데 자꾸 에러가 나는 것임. 1. as로 걸어주기 if (e.type == "keydown" && e.code == "Enter") { gotoPage(v); return; } if (e.type == "click") { gotoPage(v); } 이건 고치기 전임 if (e.type == "keydown" && (e as React.KeyboardEvent).code == "Enter") { gotoPage(v); return; } if (e.type == "click") { g.. Javascript/typescript 2024.01.24
[react][typescript] string[] 형식은 never[] 형식에 할당할 수 없습니다. let arr = useRef([]); arr.current = text.replace(" ", "").split(","); // 에러 배열을 하나 만들어서 어떤 텍스트를 배열화한걸로 대체하려고 했는데 위와 같은 메세지가 뜨더라. arr가 []배열이라고 다 써놨는데 뭐가 문제지?? 1. 배열에 어떤 인자가 들어오는지 상세하게 알려주기 // useRef에 쓰는 예시 let arr = useRef([]); // 모르겠다 대충 넘어가자 let arr = useRef([] as any); Javascript/typescript 2024.01.23
[typescript] 값 할당 시 문제 undefined 형식은 number 형식에 할당할 수 없습니다. undefined 형식은 string 형식에 할당할 수 없습니다. a = b 이렇게 a에 b를 할당하려고 하는데, a가 number고 b가 string이라 b를 숫자로 바꿔서 넣는다고 쳐보자. 근데 b가 또 undefined가 될 수 있다 이딴~~~소리를 하면서 에러가 뜨는데 그냥 이런건 조건 걸어서 걔가 undefined아닐때~ 이렇게 써주면 되는데 한줄로 쓰는 방법은 아래와 같음. 1. 한줄로 쓰는 법 const cnt = (settings.cnt !== undefined) ? parseFloat(setting.cnt) : 2; 넹 Javascript/typescript 2024.01.18
[typescript] localStorage, sessionStorage 타스로 쓰다보면 자꾸 빨간줄이 생기는데 일단 첫번째 1. getItem에 에러날 경우 const item = JSON.parse(sessionStorage.getItem(k)!); 뒤에 느낌표를 쓰기. 2. key에 에러날 경우 // 반복문이라서 i가 있음 const k = sessionStorage.key(i); if (k && k.includes('user')) {}; 첫번째는 따로 변수로 받아서 if문에서 갸가 있을 경우~를 써주고 처리하면 된다. if (sessionStorage.key(i)?.includes('user')) {} 변수로 처리하기 싫다면 이렇게 물음표를 key뒤에 붙이면 됨! Javascript/typescript 2024.01.17
'정의되지 않음'일 수 있는 개체를 호출할 수 없습니다. 아 형 또 왜그래요 1. 좀 더 자세한 조건 추가 if (this.view.api?.getText) { this.view?.api?.getText(text); } 좀 더 설명하자면 view의 api에 아무것도 없다가 페이지가 로드되면 getText가 생기는데, 이 타이밍을 못기다리고 getText는 없다며 '정의되지 않음' 이하 경고멘트를 띄운 것임. 그렇기때문에 getText가 있을때~를 조건으로 걸고 그 안에 하고싶은걸 넣어주면 됨. 거의 다 이런식의 오류인듯. Javascript/typescript 2024.01.15