36,300원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[리뉴얼] 타입스크립트 올인원 : 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'} 이거맞을까요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
제네릭에서 질문입니다.
function add<T extends (a: string) => number>(x: T): T { return x }; add((a)=>+a)위 코드 add((a)=>+a) 에서 인자 a가 왜 string으로 인식되는지 , +a가 왜 숫자로 인식되는지 이해가 가지 않습니다.
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
interface에 readonly 속성이 있을 때
interface A { readonly a: string; b: string; } class B implements A { a: string = '123'; // OK b: string = 'world'; } const b: B = new B(); b.a = '456'; // OK console.log(b); // { a: '456', b: 'world' } 인터페이스 A에서 변수 a는 readonly 키워드가 붙어있는데 이를 구현한 클래스 B에서 readonly 키워드를 붙여주지 않아도 에러가 발생하지 않는 이유가 궁금합니다.