본문 바로가기
728x90
반응형

TIL147

dart 1 String // int // bool // var // dynamic 둘 다 재할당 가능 둘 다 재선언 불가능 처음에 지정할 때 var 는 타입 고정 dynamic 은 any 같이 모든 가능 처음에 타입을 지정하기 때문에 let name; let name = "1234" name = 1234 타입 변형 가능 => 정말 잘 안 씀 List 콘솔 찍으면 [] 나옴 이렇게 보면 둘 다 차이가 없는데 new List()는 좀 더 기능이 있다고 함 => 근데 다트 업데이트 되면서 막아놓은 거 같음 저렇게 쓰지 말라고 함(gpt도 그럼) gpt가 알려준 수정안 void main() { List redVelvetList = []; print(redVelvetList); List redVelvetList2 = Li.. 2023. 11. 27.
리액트 쿼리3 const treatments = useTreatments(); .... return( treatments.map((el)=>( {el} )) ) useTreatments(); => get을 아예 hook으로 뺌 import { useQuery } from 'react-query'; import type { Treatment } from '../../../../../shared/types'; import { queryKeys } from '../../../react-query/constants'; async function getTreatments(): Promise { const { data } = await axiosInstance.get('/treatments'); return data; } exp.. 2023. 11. 26.
제이쿼리 1 append, template append() 코드 넣기 append() 이것은 기존 내용입니다. template $("#test").tmpl().appendTo("#mainBoard"); tmpl() : 제이쿼리 템플릿 엔진 "#mainBoard" 에 "#test" 추가함 사실 html 문법임 "" HTML 문서에 자바스크립트를 활용하여 동적으로 복제하고 추가할 수 있는 관련 콘텐츠를 탬플릿으로 보관하는 영역을 나타냅니다. 순수 자바스크립트 template 태그 렌더링 시에는 화면에 표시되지 않지만 자바스크립트로 동적 조작이 가능합니다. 아이템 추가하기 const itemList = document.getElementById('template-item-list'); const listItemTemplate = document.get.. 2023. 10. 6.
리액트 쿼리 2 useMutation 데이터를 저장하는 개념이 아님 useQuery처럼 재시도 안 함 const deleteMutation = useMutation((postId)=> deletePost(postId)); ... return ( delete {deleteMutation.isError && Error delete post } {deleteMutation.isSuccess && is not deleted } ) 캐시하지 않으니 굳이 쿼리 키 필요 없음 --- 이어서 ---- 2023. 9. 30.
캐스팅 animal 밑에 빨간 줄은 선언만 해놓고 안 쓴다고 빨간줄 뜸 캐스팅은 구체화 / 추상화 개념으로 받아들이는게 편함 animal이 더 넓은 개념임 dog가 더 구체화 됨 업캐스팅 animal = dog 은 가능 다운캐스팅 dog = animal 은 불가능 다운캐스팅은 불가넝 타입스크립트에도 이런 개념이 있음 리터럴 개념은 더 구체화 된 것 타입표를 보면 string / number 밑에 있음 그래서 number 타입은 10이 될 수 있지만(업 캐스팅) 리터럴 (10)타입은 number 불가넝(다운 캐스팅) 참고 https://kindjjee.tistory.com/129 2023. 7. 23.
타입 표명 vs 타입 단언 타입 표명 (type Assertion) interface Foo { bar: number; bas: string; } var foo = {} as Foo; foo.bar = 123; foo.bas = 'hello'; // 이렇게 타입을 as Foo 표명해주면 안되는 것도 가넝 let a :string = "helllllo" ":"를 사용해서 타입을 넣는 형태 타입 단언(Type Assertion) 컴퓨터보다 개발자가 타입을 더 잘 알 때 단언을 해줌 let someValue: any = "hello"; let strLength: number = (someValue).length; 혹은 let someValue: any = "hello"; let strLength: number = (someValue a.. 2023. 7. 23.
타입스크립트 제네릭 제네릭 이거 왜 있지? 했던 문법 useState 이외에는 써 본 적이 없다 ㅎㅎ 알아보니 함수에 따라 호출시 타입을 정할 수 있다고 한다 그래서 리액트 라이브러리 타입 찾으러 들어갈 때마다 엄청 많이 보였던 거 같음 멋지게 말하면 함수에 타입이 고정되는 걸 방지하고 재사용할 수 있다 뭔가 데이터 convert 함수에 잘 쓸 수 있을 거 같음 그래서 작성한 예시 1. function test(a:T,b:T){ return a + b; } test("1","2") test(1,2) ⇒ 잉 안 됨 ⇒ 리턴문에서 제네릭은 + 모른다고 에러 뜸 ⇒ + 연산자가 제네릭 타입에서는 지원 안 됨 ⇒ + 연산자는 숫자/문자열을 대상으로 동작하기 때문에 타입스크립트에서도 해당 타입에서만 지원 2. 그럼 t에 타입 정해주.. 2023. 7. 23.
타입스크립트 class / implements 1) 오버라이딩 overrriding 부모 클래스에 정의된 메서드를 자식 클래스에서 새로 구현하는 것 overridden class 오버라이든 : 부모 클래스 overridden method 오버라이든 메서드 : 자식 클래스 class Bird { 오버 라이든 클래스(부모 클래스) // 오버라이든 메서드 flight(km : number | string ){ ...} } class Eagle extends Bird { (자식 클래스) // 오버라이딩 메서드 flight(km : number){ ...} } 재정의(오버라이딩)하기 위한 조건 오버라이든(부모) 메서드 이름 === 오버라이딩(자식) 메서드 이름 && 오버라이든(부모) 타입 ≥ 오버라이딩(자식) 타입 && 오버라이든(부모) 매개변수 개수 ≥ 오.. 2023. 7. 9.
클로저 this.name 으로 내부 값에 접근 객체 안 함수에 접근하는 클로저 개념 + 만약 타입스크립트였다면 .......... 퇴근 후 추가~~~~~ 2023. 6. 21.
728x90
반응형