일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- donwstream #upstream #origin
- DP #c++
- rate limit
- useState #Hooks
- 백준 #적록색약
- React-Query
- 빡킹독
- RateLimit
- 버블링 #갭쳐링 #이벤트 #JS
- 백준 #직각삼각형
- npm #not being able to find a file #npm install Error
- react #useCallback #react Hook
- JWT #토큰 #refreshToken #accessToken #Token #token #localStorage #sessionStorage
- 플로이드 #c++
- 얕은 복사 #깊은 복사 #shallow copy #deep copy
- axios
- 코드스테이츠 #알고리즘 #그리디
- React #리액트 이벤트 주기 #리액트 이벤트
- interceptors
- React #controlled component #비제어 컴포넌트 #제어 컴포넌트
- react
- 다익스트라 #파티 #백준
- react fragment
- React #effect hook #useEffect
- html entities
- React #Hook rules #Hook 규칙
- raect typescript #react #typescript #styled-component
- 이친수
- #useRef #언제 쓰는데?
- 노마드 코더 #타입스크립트 #typescript #class
- Today
- Total
목록Learning Typescript (8)
꿈꾸는 개발자
TS는 제네릭을 사용해 타입 간의 관계를 알아낸다 제네릭 타입 매개변수를 원하는 만큼 선언 가능 ⇒ 타입 매개변수는 구조체의 각 인스턴스에 대해 타입 인수라고 하는 서로 다른 타입을 함께 제공 가능??????? 타입 매개변수는 전형적으로 T or U 같은 단일 문자 이름 또는 Key와 Value 같은 파스칼 케이스 이름을 가짐 10.1 제네릭 함수 매개변수의 형태로 함수를 제네릭으로 만듦 ⇒ 함수 내 매개변수 타입 애너테이션, 반환값 애너테이션으로 사용 가능! function iden(input:T){ return input; } const num=iden("me")//타입 me const stringy=iden(123)//타입 123 //화살표 함수 형태의 제네릭(리액트 환경에서 JSX와 충돌이 있음=..
9.1 top 타입 top 타입: 가능한 모든 값을 나타내는 타입 ⇒ 모든 타입은 top에 할당할 수 있다. 9.1.1 any 다시 보기 any 타입 top 타입과 유사함(모든 타입의 위치에서 제공 가능) let value:any; value="string";//ok value=123;//ok console.log(value); 하지만, any의 경우 타입 검사를 수행하지 않음 (타입스크립트의 유용성이 떨어짐) unknow으로 선언하는 것이 더 안전함 9.1.2 unknown TS에서 unknown 타입은 진정한 top 타입임 any와의 공통점/차이점 ****************공통점:****************모든 타입을 unknown타입 위치로 전달 가능(any와 유사함) 차이점: TS는 unkn..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vQsEq/btr24jDIBGU/46ETbiWy740vJen7mVNgTk/img.png)
8.1 클래스 메서드 매개변수 기본 타입: any 독립 함수와 동일한 방식으로 이해 클래스 생성자(constructor) 또한 동일한 취급 //메서드 class Greeter{ greet(name:string){ console.log(`${name}`); } } new Greeter().greet('haha'); //ok new Greeter().greet(); //Error: 인수 필요! ================================================= //생성자 class Greeter{ constructor(mess:string){ console.log(`${mess}`); } } new Greeter("haha"); new Greeter() //Error 매개변수 제공 안 ..
TS는 JS와 달리 하나의 배열에 데이터 타입을 하나로 유지한다. const arr=["a","b"]; arr.push("c"); arr.push(true); //에러 발생 배열의 타입 유추는 변수 초깃값에서 타입 유추하는 방식과 유사하다. 6.1 배열 타입 TS는 변수에 타입 애너테이션을 제공해 배열이 포함해야 하는 값의 타입을 알려준다. let arr:number[]; arr=[1,2,3,4,5,6]; arr1 //와 같은 형식으로도 작성이 가능함! 하지만 개발자들은 위의 방식을 //더 선호함 6.1.1 배열과 함수 타입 //타입은 string 배열을 반환하는 함수 let createString: ()=>string[]; //타입은 각각의 string을 반환하는 함수 배열 (결국 타입은 배열이란 의미..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dw33pl/btr1Wl9hX3n/T8QwlFkgUDLcD1f8omdwk1/img.png)
5.1 함수 매개변수 function sing(song){} 위와 같이 매개변수의 타입을 명시하지 않으면 TS에선 any로 간주함 변수와 마찬가지로 매개변수에도 타입 애너테이션을 선언 가능! function sing(song:string){ console.log(`Singing ${song}`) } 5.1.1 필수 매개변수 TS에선 함수에 선언된 모든 매개변수가 필수라고 가정함, 인수의 수가 잘못된 상태로 함수가 호출되면 타입 오류! ⇒ 타입 안정성을 강화하는 데 도움을 줌 5.1.2 선택적 매개변수 선택적 매개변수에는 항상 | undefined가 유니언 타입으로 추가돼 있다. 따라서, JS처럼 값을 할당하지 않았을 때 undefined이 나오도록 하고 싶으면 밑과 같이 function announceS..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bobvqk/btr1bl4soOJ/kPDCLK8WgvlBaAZk4cVca1/img.png)
4.1 객체 타입 {…}과 같이 객체 리터럴을 생성하면 TS는 해당 속성을 기반으로 새로운 객체 타입 또는 타입 형태를 고려한다. ⇒ 객체 값과 동일한 속성명 및 원시 타입을 갖는다. const hoho={ born:1948, name: "Mary", } hoho['born'] //number 타입 hoho.name //string 타입 hoho.end //에러 발생 (does not exist) 객체 타입은 TS가 JS코드를 이해하는 방법에 대한 핵심 개념이다. null과 undefined을 제외한 모든 값은 해당 값에 대한 실제 타입의 멤버 집합을 가짐(string, number 등 집합에 속함) ⇒ TS는 모든 타입의 값을 확인하기 위해 객체 타입을 이해해야 함 4.1.1 객체 타입 선언 명시적으로..
2.1 타입의 종류 타입: 값의 형태에 대한 설명 ⇒ 형태: typeof 연산자가 설 명하는 것을 의미 타입스크립의 가장 기본적인 타입은 JS의 일곱 가지 기본 원시 타입과 동일 null undefined boolean string number bigint symbol let bestSong= Math.random()>0.5 ? "chain of fools": "respects"; 위는 무조건 string이기 때문에 type은 string으로 표시됨 2.1.1 타입 시스템 타입 시스템은 프로그래밍 언어가 프로그램에서 가질 수 있는 타입을 이해하는 방법에 대한 규칙 집합이다 기본적인 타입 시스템의 작동 규칙: 코드를 읽고 존재하는 모든 타입과 값을 이해함 각 값이 초기 선언에서 가질 수 있는 타입을 확인한..
타입스크립트에서 행해지는 ‘코드 정보에 입각한 추론’ 유니언(Union): 값에 허용된 타입을 두 개 이상의 가능한 타입으로 확장하는 것 내로잉(narrowing): 값에 허용된 타입이 하나 이상의 가능한 타입이 되지 않도록 좁히는 것 3.1 유니언 타입 let thinker = Math.random()>5 //let thinker: string | undefined으로 표시됨 ?undefined: "Mark Goldberg"; 위 코드처럼, undefined이거나 string일 수 있는 것과 같은 타입을 유니언이라고 한다. 3.1.1 유니언 타입 선언 변수 초기값이 있더라도, 명시적 타입 애너테이션을 제공하는 경우 유니언 타입 사용 ⇒ 유니언 타입은 타입 애너테이션으로 타입을 정의하는 모든 곳에 사용 ..