36,300원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
custom filter 메서드 구현부분에 궁금점이 생겨 질문드립니다
interface customArray<T>{ filter<S extends T>(callback:(v:T, index: number, array:T[]) => v is S): S[] } const sample1: customArray<string> = ["1", "2"] const value = sample1.filter((value, index): value is string => Number(value) > 1)강의에서 구현하신 custom filter는 custom type guard로 별도 리턴 분기처리를 하지않았는데 어떻게 true 케이스들만 필터링 할수 있는지 궁금합니다.저의 개인적인 생각은 callback의 반환값으로 value is string 를 반환하는데 위의 케이스를 바탕으로 value는 string 형식이기 때문에 true가 됩니다때문에 callback 메서드 수행시 false 반환값은 무시되고 true 반환값들만 리턴된다라고 추측이되는데 이 추측이 맞는지 궁금합니다
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Exclude 만들기에서 extends 구문 질문
type Exclude<T,U> = T extends U ? never : TExclude<Animal, 'Human'>그런데 T가 U보다 넓은거니까U extends T가 맞지 않나요? ㅠ PS. 아.. 혹시 하나하나 읽히는거면 equal로 해석해도 되는건가요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
안녕하세요 제로초님
interface Arr<T> { forEach(callback: (aaa: T) => void): void; } const test: Arr<string> = ['hello', 'world']; console.log( 'test', test.forEach((item) => console.log('item', item)) );안녕하세요 제로초님 하나 궁금한것이 생겨서 여쭤보고싶습니다.위의 사진은 정상적으로 작동하는 코드입니다.그런데 아래 사진 같은경우는 아래 사진에 첨부한 에러 메세지가 나오고 있습니다.둘의 차이점은 함수 이름을 forEach 를 사용했을때 에러(X)아래 사진은 함수 이름을 forEachTest로 사용 한 것 뿐인데forEachTest 라는 함수는 현재 에러가 나고있는데요,해당 코드에서 forEach와 forEachTest의 차이점은 무엇인가요??제가 생각했을땐 forEach에서도 에러가 나야 하지 않을까? 였습니다.해당 내용이 이해가 되질 않아서 답변주시면 감사하겠습니다. interface Arr<T> { forEachTest(callback: (aaa: T) => void): void; } const test: Arr<string> = ['hello', 'world']; console.log( 'test', test.forEachTest((item) => console.log('item', item)) );
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
redux에서 타입스크립트 적용할 때
type TReport = { [key: string]: string[]; }; interface IinitialState { report: TReport[] } const initialState = { report: [], //<- [{}] 로 해야 오류가 안남, 현재는 오류 };강의를 듣고 조금씩 적용을 해보면서,위 코드는 redux store의 처음데이터 initialState를 설정하는 건데요,저는 처음에 빈배열([ ])로 시작하길 바라는데, IinitialState를 초기 state의 타입으로 지정해주면 반드시 ([{}]) 의 형식으로 지정해줘야 합니다.union을 통해 회피하기 위해서interface IinitialState { report: TReport[] | [] }이렇게 해보기도 했는데 interface에서는 union이 안 먹힌다는게 생각났습니다. 보통 빈 객체로 시작하고 싶은 이런 경우에는 어떻게 타입을 지정하나요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
타입만들기가 아직 너무 어렵습니다. 혼자 문제를 만들어 풀어보다가 문의드립니다.
const obj = { a: '1', p: '2', l: '3', }; const test = (v) => { return v.replace(/a|p|l/gi, (matched) => { return obj[matched]; }); }; test('apple'); // 기대되는값 1223ereplace를 이용해서 한번 여기에 타입을 달아보고 싶어서 const test = (v: string) => { const matchedFunc: ( matched: keyof typeof obj, ) => typeof obj[keyof typeof obj] = (matched) => { return obj[matched]; }; return v.replace(/a|p|l/gi, matchedFunc); };이런식으로 수정을 시도했는데 일치하는 오버로드가 없다고 나옵니다.. interface Arr<T> { replace():void; }강의에서처럼 이렇게 두고 수정을 해보려고 해보았지만 아직 너무 어려운거 같습니다. 어떻게 하는게 좋을지 의견부탁드립니다.
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
타입선언시 keyof 같은 값들은 console.log 처럼 디버그 할 수 있는 기능은 없나요??
타입선언시 keyof 같은 값들은 console.log 처럼 디버그 할 수 있는 기능은 없나요?
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
제네릭 설명 하셨던 부분에서
function test<T extends number> (a: T, b: T): T { return a + b } test(1,2) test('1','2')위 코드는 강의를 보고 비슷하게 만든 예제 코드인데요,number로 부분집합인 T가 생성되는 것으로 이해하고 있습니다.문제는 return a+b인 부분이 Type 'number' is not assignable to type 'T'. 라는 오류를 뱉게 됩니다. 강의에서는 'T가 무엇인지 코드가 모른다' 라고 말씀하셨는데, 해당 return 값도 T extends number로 인식 되어야 하는거 아닌가요? 어떻게 해결해 줄수 있나요
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
13:50 파라미터 질문 (해결)
질문은 완전 복잡 타입 분석 bind편 13:50초 입니다 function add(a: number, b: number, c: number, d: number, e: number, f: number) { return a + b + c + d + e + f; } const add2 = add.bind(null, 1);에서add.bind의 첫번째 매개변수가 null이면bind<T, A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; -> this: (this: T, arg0: A0, ...args: A) => R <- 이녀석정의된 타입에서 가르키는 첫번째 매개변수 타입이 매칭되야 하는 것 아닌가요?어째서 첫번째 매개변수인 null이 두번째 매개변수인 thisArg : T 와 매칭되는지 모르겠습니다 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ아 자문자답인데 해결했습니다입력된 타입들이 매칭되서 함수가 만들어지고 그게 this에 할당되고 있었네요
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
interface와 type의 차이는 무엇인가요? (partial 구현도중 궁금점)
partial 구현 interface로 구현해보니 이유는 모르겠지만구현이 안되네요type와 interface의 차이점을 정리해주는 파트가 있었으면 좋겠습니다지금까지 제가 정리한 부분*강의 덕분에 명절에 즐거운 시간 보내고 있습니다감사합니다
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
타입에서의 this 가 헷갈립니다
bind<T A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;위 타입에서 this가 두번 나오는데 서로 의미하는 바가 다른 것 같습니다.두번째 this는 실제 함수에서 arguments로써 사용되는 this인 것 같은데const Func(this:someThing) {}첫번째 this가 의미하는바가 무엇인지 이해가 잘 안가네요.. 그리고 OmitThisParamter 타입을 분석을 해보려고 하니 아래 부분 비교를 한다는 것은 T에 this arguments가 존재한다는 뜻으로 이해를 했는데 ...args 만으로 표기를하면 this까지 포함되는게 아닌건가요?T extends (...args: infer A) => infer R제 생각에는 다음과 같이 되어야 할 것 같은데 어떻게 this를 제외한건지 명확하게 이해가 안갑니다T extends (this:unknown, ...args: infer A) => infer R
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
3:12 초의 내용을 인덱스드 시그니쳐 처럼 어떻게 쓰나요?
3:12 초의 코드를 보면변수 aaaa의 속성에 type의 모든 속성을 넣어주어야 하고 있습니다.(모든 속성 안넣으면 빨간줄 뜸)인덱스드 시그니쳐처럼 let temp: A = { Human: "Human" }; let temp: A = { Human: "Human", Mammal: "Mammal" };(작성한 코드처럼 )필요한 만큼만 넣고 상황에 따라 확장하려면 어떻게 해야하나요?
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
enum과 객체 사용할 때의 차이점
안녕하세요. 좋은 강좌 감사합니다. const enum EDirection { Up, Down, Left, Right, } const ODirection = { Up: 0, Down: 1, Left: 2, Right: 3, } as const; EDirection.Up; (enum member) EDirection.Up = 0 ODirection.Up; (property) Up: 0 // Using the enum as a parameter function walk(dir: EDirection) {} // It requires an extra line to pull out the keys type Direction = typeof ODirection[keyof typeof ODirection]; function run(dir: Direction) {} walk(EDirection.Left); run(ODirection.Right); 강의안에 있는 위의 예시를 실행해 보았는데요 마지막 줄에 walk(8); 을 실행하면 에러가 나지 않고 run(8); 은 에러가 나는 이유가 무엇일까요? 또 walk(Edirection.bottom); 이라고 실행하면 에러가 나던데 완전히 Edirection 안의 값과는 다른 8이라는 값을 넣었는데 에러가 안 나는 것이 이해가 안 됩니다.
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
함수에서의 타입 명시할 때 에러 발생
강의 3분 6초 즈음에 보면function add(x: number, y: number): number;function add(x,y) { return x + y; }이렇게 함수에서의 타입을 명시하는 부분이 있는데요 강의 화면에서도 그렇고 제 에디터 상에서도 에러가 발생하는데 이유가 뭔지 잘 모르겠네요.VSCode 상에서의 에러 메시지는 다음과 같습니다.(parameter) y: any'y' 매개 변수는 암시적으로 'any' 형식이지만, 사용량에서 더 나은 형식을 유추할 수 있습니다
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
개인적인 타입가드 및 유니온 타입 에 대해서 질문합니다.
안녕하세요! 제로초님 리뉴얼 강의 1, 2 를 보고 개인 프로젝트에서 진행한 any 타입을 없애는 작업을 하고 있습니다. 타입을 지정하면서 막히는 부분이 있어, 개인 프로젝트 내용이지만 질문을 해봅니다 ㅠㅠ해당 템플릿에서 전달하는 것보다 노션을 이용하여 전달하는게 더 좋아 보여 노션을 이용하여 전달합니다. !! 혹시 몰라 노션의 댓글 기능도 켜놓겠습니다 ㅎㅎhttps://successful-mallet-e13.notion.site/API-c35bae23df3246fc883c178a19d04e6b
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
OmitThisParameter 관련 질문이요.
OmotThisParameter 에서 첫번째 삼항식은 이해했는데요. 두번째 삼항식 까지 있어야 하는 이유가 무엇일까요?infer로 파라미터와 리턴 값 타입추론에 실패했을때의 케이스 때문인것 같은데요.일반적인 함수 타입추론 케이스에서 파라미터와 리턴 타입 추론에 실패하는 경우가 있을수 있기 때문 일까요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Promise key 타입 분석 질문이요
Arr 의 타입이 ‘0’, ‘1’, ‘2’ 라고 하셨는데, '0', '1', '2' + number 타입이 허용되는 이유는 무엇일까요?? 객체의 키를 타입으로 표현할때 모든 number 타입이 원래 허용되는것이고, 위와같은 케이스에서는 as const 키워드로 readonly 속성이 추가되었기 때문에 모든 Number Type + ‘0’, ‘1’, ‘2’ 타입을 따로 구할수 있는 개념이라고 이해하면 될까요?실제 구현된 코드에서는 '-readonly' 키워드로 readonly 속성이 제거되었는데요. 이러면 Arr 속성의 경우 key 의 속성은 number[] 만 할당할수 있는걸로 나오는데 어떻게 '0', '1', '2' 를 구할수 있는지 궁금합니다 !
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
ts 가 js 로 변환되었을때 남아있는지 여부가 어떤 측면에서 중요한걸까요?
안녕하세요, ts enum 관련 질문이 있습니다.ts > js 로 변환될때 enum 은 남지 않는다 라고하였는데ts 에서 js 로 변환될때 js 로 남는다, 남지 않는다가 어떠한 측면에서 고려해봐야하는 문제일까요?
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
interface Aa 타입 오류에 대한 질문
constructor(): void 의 Aa interface 를class A 에서 implements 로 사용할때 class A 에서 타입 에러가 나고 있는데요.이부분은 편집 된것 같은데 위와같은 상황에서 에러를 해결하려면 interface Aa 에 타입을 어떻게 할당 해주어야 할까요?클래스 문법은 낯설다보니, 해결 방법을 찾기가 힘들어서 질문 드립니다 !
- 미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
저는 한국어 버튼이 안보여요
선생님 말씀대로 공홈에 접속해서 타입스크립트 공부를 시작하려는데요.왜 저는 우측 최상단 Search Docs Input 좌측에 있는 한국어 버튼이 안보일까요??Search Docs Input 은 보입니다.
- 해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
안녕하세요.
안녕하세요. 궁금한게 있어서 질문 드립니다. 수업 도중에 빈 배열 위에 드래그 후 마우스를 올렸을때 강좌에서는 const array: never 라는 팝업이 뜨는데 저는 빈 배열을 드래그 했을때나 드래그 하지 않았을 때 아무 것도 뜨지 않으며 array는 any가 떠서 어떻게 하면 확인할수 있는지 질문 드립니다. IDE는 웹스톰 사용하고 있습니다.