Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 쏙쏙 들어오는 함수형 코딩
- 출처 : https://www.boostcourse.org/
- 갈길이 멀구나
- 로버트 C마틴
- 클린코드다시읽기
- 유틸리티타입은 공식문서 자주 보자
- 오종택개발자님
- 고등애플
- 쏙쏙 들어오는 함수형코딩
- 이웅모
- 생코님Redux
- 리엑트를 다루는 기술
- 출처 : 자바스크립트 딥다이브
- 출처 : 코딩애플
- 쏙속 들어오는 함수형코딩
- 쏙쏙들어오는함수형코딩
- 출처는 코딩앙마
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 출처 : 코딩앙마
- 흥달쌤
- 김영한쌤
- 에릭 노이먼
- 함수형 코딩
- 에릭 노먼드
- 에릭노이먼
- https://product.kyobobook.co.kr/detail/S000001952246
- 자바스크립트 딥다이브
- 나는 flux좋아...
- 출처는 코딩애플
- 큰돌의 CS책
Archives
- Today
- Total
흰둥씨의 개발장
[typescript] Generic 본문
함수
function getSize<T> (arr:T[]) :number{ //<호출시 전달되는 타입>으로 구성된 배열을 매개변수로 받고,
//리턴값은 항상 number로 함
return arr.length
}
const arr1 = [1,2,3];
getSize<number>(arr1); //3
const arr2 = ["a","b","c"];
getSize<string>(arr2); //3
const arr3 = [true, false, true];
getSize<boolean>(arr3);
const arr4 = [{name:"Hyo"}, {key:"1"}, {cat:"jr"}];
getSize<{}>(arr4);
객체
interface Mobile<T> {
name:string;
price:number;
option:T;
}
const m1 :Mobile<{color:string}> = {
name:"uni1",
price:1000,
option: {
color: "silver"
}
}
const m2 :Mobile<string> = {
name:"uni2",
price:10000,
option: "red"
}
에러 나는 코드
interface User {
name:string;
age:number;
}
interface Car {
name:string;
price:number;
}
interface Book {
price:number;
}
const user:User = {name:"a",age:10}
const car:Car = {name:"a",price:1000}
const book:Book = {price:10000}
function getName<T> (item:T) :string{ // item에 T를 전달했을 때
return item.name; //리턴값으로 요구하고 있는 name속성이 T에 없어서 에러남
}
getName (user);
getName (car);
getName (book);
아래와 같이 getName함수 부분을 수정할수 있음
function getName<T extends {name:string}> (item:T) :string{ // T를 확장해서 name속성 정의
return item.name;
}
getName (user);
getName (car);
getName (book); //name 속성이 없는 객체나 name타입이 string 아닌것이 오면 에러남
'[오늘의 공부] > typescript' 카테고리의 다른 글
[typescript] react에 적용하기 (0) | 2023.06.22 |
---|---|
[typescript] 유틸리티 타입(Utility type) (0) | 2023.06.16 |
[typescript] 클래스 (0) | 2023.06.15 |
[typescript] 리터럴과 유니온/교차 타입 (0) | 2023.06.15 |
[typescript] 함수 (2) | 2023.06.15 |