36,300원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
react state 값을 unknown으로 설정
안녕하세요! 아직 기초 강의 수강 중에 질문이 생겨 우선 이곳에 리액트 관련 질문을 남깁니다. 저는 커스텀 input 컴포넌트를 만들어서해당 컴포넌트가 어떤 값이든 (text, number, date 등)을 받을 수 있게 하고 싶은데요. 그러기 위해 먼저 든 생각이useState<unknown>()으로 먼저 unknown값을 받아 useState 훅을 만들고,나중에 값이 정해지고 나서 해당 타입값을 지정하는 방식이었습니다. 혹시 이 접근 방식이 잘못 되었을까요?이럴 경우에는 어떤 식으로 코딩하는 것이 좋을까요?
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
`typeof` `keyof` 의 값 확인은 에디터에서 호버하는 방법 밖엔 없나요?
typeof keyof 의 값 확인은 에디터에서 호버하는 방법 밖엔 없나요?console.log 같은건 없을까요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
number 타입 -> string 타입으로 변경할때, `as unknow` 을 사용해야 에러가 안나는 이유가 무엇인가요?
number 타입 -> string 타입으로 변경할때, as unknow 을 사용해야 에러가 안나는 이유가 무엇인가요?문법적인 이유일까요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
this 질문드립니다.
type Person = typeof person; // 에러 발생 const person = { name: "peter", sayHi(this: Person) { console.log(`Hi, ${this.name}`); }, };타입스크립트가 알아서 this를 추론해주는데 궁금해서 타입을 직접 넣어봤습니다.근데 아래의 에러가 뜹니다.Type alias 'Person' circularly references itself.어떻게 수정해야 할까요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
infer 질문드립니다.
type R<T extends (...args: any) => any> = T extends (...args: any) => infer A ? A : never;여기서 A의 타입이type Returns = { x: number; y: string; z: boolean; }로 추론되는데 params처럼type Returns = [x: number, y: string, z: boolean];이렇게 바꾸려면 어떻게 해야 하나요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
밑의 댓글 보고 질문드립니다.
https://www.inflearn.com/course/%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-1/unit/122327?category=questionDetail&q=664606&tab=community 이 글 보고 질문드립니다.interface myArray<T> { myForEach(callback: (v: T) => void): void; } const a: myArray<number> = [1, 2, 3] as myArray<number>; // 에러 발생 a.myForEach((v) => console.log(v)); 이렇게만 작성할 경우, Property 'myForEach' is missing in type 'number[]' but required in type 'myArray<number>' 에러가 발생합니다. a의 타입을 myArray<number>로 지정했음에도 Array<number>를 참고하는 이유가 뭔가요? Array<number>를 참고하기 때문에 밑의 댓글에 interface myArray<T> extends Array<T> 로 적으셨던 건가요? 강의에서 forEach 메서드가 에러가 안났던 이유는 Array<T>에 이미 forEach 메서드가 있었기 때문인가요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
내부 구현(?)에 대해 질문드립니다.
자바스크립트의 경우,const human1 = { talk() { console.log(this); }, }; const human2 = { talk: () => { console.log(this); }, }; human1.talk(); // human1 human2.talk(); // 전역(module.exports) human1과 human2의 메서드가 다르게 동작합니다.그럼 타입스크립트의 경우,interface Human1 { talk(): void; } interface Human2 { talk: () => void; }두 개가 내부적으로 다르게 구현되었나요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
is 연산자
안녕하세요 강의 잘듣고 있습니다. 강의를 듣다가 is 연산자가 나왔는데요. is 연산자를 사용했을 때와 사용하지 않았을 때? is 연산자를 사용하면 어떤 것이 달라지는지 잘모르겠습니다...연말 잘보내세요!!
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
간단한 궁금증입니다.
typescript를 사용하는 이유는 개발자가 만드는 도중에 type으로 인한 실수를 줄이기 위한 것 아닌가요?tsc로 나중에 js가 어떻게 변환되는지가 중요한지 궁금합니다.
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
오버로딩 예제이지만, 저게 반공변성에 해당되는 건지 궁금합니다.
interface Add { (x: number, y: number): number; (x: string, y: string): string; } 이것도 넓은 타입의 파라미터를 좁은 타입의 파라미터에 넣은 것으로 보고 반공변성에 해당한다고 볼 수 있나요? const add: Add = (x: any, y: any) => x + y;
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
es5 라이브러리의 콜백 파라미터에 대해 궁금한게 있습니다.
( 이 부분이 궁금합니다 ) map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];여기서 콜백 함수에서 넘겨 받는 파라미터는 있을 수도 있고 없을 수도 있는데, 어떻게 사용 할 때 타입 체크를 통과 할 수 있는지 궁금합니다. 예로 들면,const a = [1, 2, 3].map(() => 0); // a = [0 , 0, 0]이렇게 콜백 인자를 하나도 넘기지 않을 수 있는데 저렇게 정의되어 있으면 다 받아야 하는게 아닌지 제가 생각하기론 옵셔널이 붙어야 되는 것이 아닌가 싶습니다... 제가 앞에서 놓친 부분이 있는 것 같기도 합니다;;
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
as const 를 붙여서 readonly된 객체의 타입
const obj = { A: "a", B: "b" } function isInclude (param: string) { if(Object.values(obj).includes(param)){ return true } return false }isInclude 함수의 매개변수가(obj의 value 값 배열인) ["a", "b"] 에 포함이 될 때 true를 반환하고,그렇지 않을때는 false를 반환하는 함수 입니다.func("a"); // true func("b"); // true func("c"); // false그런데!!!const obj = { A: "a", B: "b" } as const function isInclude (param: string) { if(Object.values(obj).includes(param)){ return true } return false }`obj` 객체를 as const로 readonly 객체로 만들어주니 에러가 납니다.string 이 "a" | "b" 에 할당 가능하지 않다?? 그러면 as const를 안붙일때도 불가능 해야하지 않나요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
map 함수 제네릭 분석과정에 대해서 질문드립니다.
안녕하세요. 제로초님 강의 잘 듣고있습니다.map함수를 분석할 때 두번째 제네릭(U)이 map 옆(map<U>)에 또 선언되는 이유에 대해 궁금해서 질문드립니다.일단은 강의를 보면서 변수를 사용하기 위해 변수를 선언한 것처럼map옆에도 제네릭을 추가로 사용하기 위해 선언한거라고 추측해서 이해했는데 이게 맞을까요?콜백함수의 return, map 함수의 전체 return에서만 선언하면 될 것같은데어떤 이유때문에 추가로 map옆(map<U>)에도 제네릭(U)을 사용하는 건가요? // map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; map<U>(callbackfn: (value: number, index: number, array: number[]) => string, thisArg?: any): string[]; // map<U> -> why?? [1, 2, 3].map((item) => { item.toString() });
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
이 후 강의 선택에 대해서 질문드리겠습니다.
안녕하세요. 제로초님 덕분에 타입스크립트의 기초를 잘 다진것같습니다.해당 강의 이후에 실전에서 타입스크립트를 이용하여 뭔가를 만들어보고 싶은데두 강의 중 추천 부탁드리겠습니다. 타입스크립트 파트 2. 실전분석편슬랙 클론 코딩 최종적으로는 두 강의 모두 수강할 예정이긴하지만, 현재 개념만으로 슬랙 클론 코딩강좌를 수강할 수 있는 수준인지 궁금해서 질문드립니다.
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Request 객체에 특정 값 추가하는 방법 질문
안녕하세요. 강의 잘 듣고 있습니다.express나 nest에서 Request 객체에 어떤 다른 값을 넣고 나중에 참조할 필요가 있을 때 어떻게 처리하시는지 궁금합니다.auth middleware를 만들때 request를 any로 만들고 user 값을 대입하고 User decorator에서 저장했던 값을 꺼내는 식으로 했던거 같아요.확인 부탁드립니다.
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Partial 기능 문의.
안녕하세요 제로초님.Partial 타입의 작동 원리는 이해되었는데 좀 의아한 동작이 있어 문의드립니다.첨부 이미지처럼 오브젝트 타입이 아닌 타입에도 동작하던데 저런경우엔 어떤식으로 동작하는지 잘 모르겠습니다.이런식으로 직접 적어보고 에디터에서 찍어주는 내용도 살펴봤는데 동작이 이해가 안되어서요. 시간되실 때 알려주시면 감사하겠습니다!
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
제네릭 add 예제 질문
안녕하세요. 강의 중간에 나오는 제네릭 add 메소드가 도무지 이해가 안되어 해결방법은 없는지 문의드립니다.위 예제 설명해주실때 타입스크립트가 아직 T가 뭔지 몰라서 그렇다 라고 하신 뒤 다른 내용으로 넘어가셨는데 강의 뒷 내용에 T가 확실히 무엇인지 범위를 좁혀서 위 메소드가 에러를 발생시키지 않도록 하는 내용이 나오나요?아니면 애초에 위와같은 방식은 타입스크립트에서는 사용하면 안되는 형태일까요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
빈 배열 선언시 never가 아닌 any[] 타입으로 나옵니다.
위 이미지처럼 나오는데, 설정 차이에 의한 것인지 검색을 해 보아도 알 수가 없네요.혹시 답변을 구할 수 있을가 싶어 질문 드립니다.
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Flat 분석에서 Depth 타입을 위한 배열은 왜 하드코딩일까요?
type FlatArray<Arr, Depth extends number> = { "done": Arr, "recur": Arr extends ReadonlyArray<infer InnerArr> ? FlatArray<InnerArr, [-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20][Depth]> : Arr }[Depth extends 01 ? "done" : "recur"];위의 코드에서 typescript가 [-1,0,1,...,20]로 배열을 하드 코딩한 이유는 1. 코드를 직관적으로 이해하기 쉽도록 하기 위함2. 메서드로 배열 생성했을 때, 해당 배열 생성을 위한 Array의 다른 메서드 의존을 없애기 위함+다른 배열 생성 방법 예시 중 하나) new Array(21).fill(0).map((_,i)=>i-1) 3. 다시 쓰지도 않을거고, 이정도 사이즈의 배열은 그냥 써도 된다.4. ??어떤 이유일까요?제로초님의 생각은 어떠신지 궁금합니다.
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
콜백함수 타입질문입니다.
5:35분에 콜백함수타입 지정하는부분에서function a4(a: () => void): void {} a4(() => { return "3";});타입스크립트 공부중인데 만약에 이렇게 콜백함수에 타입은 준다했을떄 함수의 인수로 a:() => void 이부분에서 a가 a4 ( ()=> { return '2'}) 이부분에서 ()=> { return '2'} 이거맞을까요?