27,500원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결타입스크립트 시작하기
[함수타입2] 함수 this에 대한 타입 부분, 제가 제대로 이해했을까요?
안녕하세요,해당 섹션에서 this 타입이 각각 왜 string 인지, object인지 , 제가 제대로 이해 했는지 궁금해 질문 드립니다. # 1. 영상 1:07 에서, 함수 getParam의 this# 2. 영상 1:35 에서, 함수 getShortKeys의 this # 1. 영상 1:07 에서, 함수 getParam의 thisfunction getParam(this:string, index:number){..중략..} ..중략... console.log('asdf,1234,ok'.getParams(1))this의 타입을 string로 한 이유는,그 this 키워드를 정의한 함수,getParam는function 키워드로 함수를 선언했고,string('asdf,1234,ok'), 즉 문자열이 함수 getParam을 호출했기 때문에,(=function으로 선언한 함수는, 해당 함수를 어떤 객체가 호출 했느냐로, this의 값(타입)이 결정되기 때문에 )this가 string타입으로 되는건가요? 그래서function getParam(this:string, index:number){ const params = this.splte(",") }this는 이미 문자열인 string타입으로 참조되기 때문에,문자열 함수인 split()를 작성 해야하는 에러인건지요? # 2. 영상 1:35 에서, 함수 getShortKeys의 this//인터페이스 정의 getShortKeys(this:object):string[] ..중략... //객체 obj const obj={a:1, bb:2, ccc:3, ddd:4} console.log(obj.getShortKeys()) this가 object인 이유는 함수,getShortKeys를 object(obj객체)가 호출했기 때문에,this가 object 타입이 된건가요??
- 해결됨타입스크립트 시작하기
객체 할당 관련 질문 있습니다.
전체 질문으로 올라가 있었어서 다시 올렸습니다;; 1) 4:45에서 "속성이 많을 수록 타입에 더 많은 제약을 가하는 것이고 이는 해당 타입의 값의 집합이 작아지는 것을 의미한다" 고 설명해주셨고,6:43에서는 "Person의 age 타입을 보면 Product의 타입이 더 크다"고 설명해주셨는데요그렇다면,타입이 가질 수 있는 값의 제약이 더 클수록 타입이 작고,타입이 가질 수 있는 값이 더 유연해질 수록 타입이 크다고 이해하면 되는 걸까요?2) 아래 코드를 작성해보니interface Person { name: string; } interface Product { name: string, age: number, } const obj = { name: "mkie", age: `23`, city: `abc`, }; let person: Person = obj let product: Product = obj; console.log(person.age)person.age에서 타입 오류가 발생하던데요그렇다면, person에 obj가 할당은 가능하지만person의 타입에 정의되지 않은 properties는 사용할 수 없다는 것으로 이해하는게 맞는건지요?할당 이후에 person을 log로 찍어보면 obj의 properties가 모두 출력되는데person.age에 접근해보면 타입 오류가 발생하고 있어서 이해가 잘 안되네요만일 그렇다면 저런 할당이 왜 필요한지도 이해가 안되고....... 실제로 저런식의 할당을 하는 경우는 어떤 것이 있을까요?
- 해결됨타입스크립트 시작하기
퀴즈 관련 질문이 있습니다.
퀴즈 4번 문제에 function f2(value: number) { if (value < 10) { return value; } else { return "too big"; } } const v2: number = f2(5); const v3: string = f2(35); const v4 = f2(5); 여기서 f2 의 반환 타입은 number | "too big"이 아닌가요?답안 4번 v4의 타입은 "number | string" 이다가 옳은 것으로 되어 있는데 제가 이해를 잘못한 건지....
- 미해결타입스크립트 시작하기
공변성 강의
7:45 강의하실때 매개변수 갯수가 다를 경우의 타입 호환(반공변성) 에 대해서 안다루셨는데, 이는 실무에서 그렇게 중요한 이론이 아니기 때문인가요?
- 미해결타입스크립트 시작하기
시간 4:31 인터페이스 타입가드에 대해
인터페이스 대신 클래스 자체를 타입으로 활용하여 instanceof로 타입가드 하는 방법은 어떨지 궁금합니다. 아무래도 클래스 본연의 용도를 훼손하는 행위이기 때문에 잘 안쓰이는 기법인가요?
- 미해결타입스크립트 시작하기
리턴값이 연산인 제네릭 에러 해결
넘버와 스트링을 인자로 받아 더하기 연산을 해주는 함수같은 경우 이러한 제네릭 에러는 어찌 해결하나요?
- 미해결타입스크립트 시작하기
code runner 사용 시 output이 깨지는 문제
ts-node를 설치하고 setting.json에 "code-runner.executorMap": { "typescript": "node_modules/.bin/ts-node" } 도 추가해줬습니다. 그런데 code runner 을 실행시키면 다음과 같은 output이 나옵니다. [Running] node_modules/.bin/ts-node "d:\typescript-example\src\1.ts" 'node_modules'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ� ��ġ ������ �ƴմϴ�. [Done] exited with code=1 in 0.08 seconds 이 문제를 어떻게 해결할 수 있을까요?
- 미해결타입스크립트 시작하기
2: 38
enum 타입으로 정의된 Fruit 은 객체로 존재한다고 하셨는데, 어째서 5번째 "인덱스" 를 알수 있다고 하신건가요? 자바스크립트에서는 배열에서 인덱스를 알려면 당연히 '[ ]' 기호를 사용해서 인덱스에 접근할수 있고, 자바스크립트에서의 객체의 인덱스를 알려면 함수의 인수에 '...' 를 사용해서 객체를 받아오고, 해당 객체를 함수 내부에서 콘솔로그로 출력해보면 배열안에 해당 객체가 들어있는 것을 알수 있기 때문에 "인덱스" 라는 것에 접근할수 있는 것으로 알고 있습니다. const obj = { name: 'james', age: 20 } function f1(...arg){ console.log(arg); // [ { name: 'james', age: 20 } ] console.log(arg[0]); // { name: 'james', age: 20 } } f1(obj) 그런데 enum 타입으로 정의된 변수 Fruit 은 어떻게 해서 "인덱스" 로 접근이 가능하게 되는 것인가요? 말씀하신 코드를 (Fruit[5] ) 출력해보지 않고 보기만 하면 Fruit 은 배열인것인거고, 5번째 요소가 존재하는걸로 이해하게 되어서 Fruit 는 배열인것이고, Fruit 라는 배열안에 요소가 5개가 들어가있는 것으로 이해가 되서요.... 현재 enum 타입으로 정의된 Fruit 내부의 요소는 총 3개인데... 제가 잘못 이해하고 있는 걸까요?
- 미해결타입스크립트 시작하기
5:55 내용에 대하여 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는 안녕하세요! 강의 잘 듣고 있습니다. index type 부분 설명에서 강의내용에는 yearMap['2000'] = 'million'; 이 에러가 나지 않는데 현재 제가 동일하게 입력하니 에러가 발생하고 있어 문의드립니다. 혹시 어떤 문제일까요??
- 미해결타입스크립트 시작하기
extends에 관하여
extends에 대해 설명을 해주실때, 5분 53초에서 A extends B => A 가 B 에 할당 가능해야 한다 라고 설명해주셨습니다. 뒤에 강의를 계속 듣다보니 extends가 상속의 개념이 강한것 같은것으로 이해됩니다. A에 할당 가능한 타입이 더 많은데 A가 B에 할당 가능해야 한다는 개념이 이해가 안됩니다. B의 타입을 A가 상속 받아 B의 타입을 A에서도 가지고 있으며, A의 타입 일부가 B의 타입과 동일하다고 생각해야하는게 아닌가요? 'A 가 B 에 할당 가능해야 한다' 는 말이 잘 이해가 되지 않습니다.
- 미해결타입스크립트 시작하기
return 타입
이건 강의 외적인 질문인데여 . 혼자 이것저것 테스트를 해보고있는데여. return 에 타입을 Promise<string> 으로 해야 잘 되던데 제가 그냥 보고 .. 생각한 바로는 Promise 니깐 Promise 객체가 인스턴스되서 넘어 가기때문에 return 타입에 넣어줘야하나 ?? 생각을 했지만 한편으론 그래도 어찌됬든 return 을 string 으로 주지 않나 ? 생각이 들기도 합니다. 조금.. 헤깔리는데.. 설명 부탁드리겠습니당 ㅎ 좋은 하루 되세여 !
- 미해결타입스크립트 시작하기
/bin/sh: node_modules/.bin/ts-node: No such file or directory 오류
강의를 들으면서 코드 런너 확장도 깔고, 또 따라하는 대로 executorMap 부분의 json파일에 node_modules/.bin/ts-node까지 따옴표 안에 잘 작성을 했지만 계속해서 /bin/sh: node_modules/.bin/ts-node: No such file or directory 라는 오류 문구가 뜹니다. 왜그런걸까요...
- 미해결타입스크립트 시작하기
Person 과 Product
6분 23 초 쯤에 , Person 값의 집합이 더 큰거라고 말씀하셨는데 , 그 이유가 age ? : number; 로 선택속성이잖아요 . 그니깐 name : string age : 값없을수도 있음 age : number 이렇게 3개의 경우가 있고 Product 같은 경우는 name : string ; age : number; 이렇게 두가지 경우니깐 값이 더 큰거일까요 ?
- 미해결타입스크립트 시작하기
tsc 기본이 es3
안녕하세요, 컴파일 중에 궁금한 점이 있어서 문의 드립니다. 타입스크립트를 사용해서 작업을 진행하면, 바벨을 사용하지 않아도 되는 것일까요? 그럼 폴리필? 설정과 등등은 어떻게 되는 것일지 궁금해서 문의 드립니다.
- 미해결타입스크립트 시작하기
[#다시질문] Person과 Product 관계
안녕하세요, 타입스크립트에서 타입호환 부분에 대해 질문 요청드립니다. 여기 올라온 질문 중 "Person과 Product 관계"라는 글이 있었는데요, 저 역시 궁금한 부분이라, 공부를 하면서 '이렇게 생각하는게 맞는가?' 고민이 있습니다. 제가 정리한 내용이 맞는지 피드백을 받고 싶어 문의 드립니다. (*=> 이란 기호는 단락 구분이 에디터에서 적용이 안되서 구분 용도로 추가했습니다) => "추가 속성이 있으면 값의 집합은 더 작아진다" "유니온 타입이 있으면 값의 집합은 더 커진다." "추가 속성이 있으면 값의 집합은 작아지므로..." "속성 타입의 범위가 넓어지면 값의 집합은 커진다." "1.구체적(?)으로 변하기 때문에 속성값이 없는 쪽이 더 많은 값을 할당 받을 수 있다고 생각해도 될까요 ? " ,Person과 Product의 관계 질문 중, (*관련부분, 책 실전리액트 프로그래밍 리액트훅에서 부터 Next.js까지 중 p461~p462, 선택 속성이 타입호환성에 미치는 영향, 추가 속성과 유니온 타입이 타입 호환성에 미치는 영향 내용에서) => 타입스크립트는 구조적 타이핑으로, 인터페이스든 클래스든, 커스텀 type으로 정의한 무엇이든, 해당 묶음이 갖고 있는 속성들/프로퍼티들이 서로 일치 한다면(서로 보유하고 있다면) 필수적으로 갖는 속성을 나도 갖고 있다면,, 키워드(인터페이스든 클래스든, 커스텀 type) 여하에 상관없이 서로 타입을 호환할 수 있다고 이해했습니다. => 집합의 "크기"라고 하는 것을 속성(프로퍼티)의 갯수가 많고 적음에 연관되어 있다고 생각하는데요, 속성(프로퍼티) 갯수가 많을 수록 값의 집합이 작아진다는 의미는 다음과 같다고 생각합니다. => 우선 해당 타입을 호환을 하려면, 구조적 서브타이핑 원칙상. 보유한 속성(프로퍼티)를 모두 혹은 필수적으로 어느정도는 일치해야하는데, 저는 이런 일치해야하는 조건들이 속성들의 갯수가 많아지면 많아질 수록 최소한 보유한 프로퍼티들을, 갯수를 만족해야합니다, => 막상 그 많은 속성들을 가진 타입을 찾기 어려워서, 만족할 수 없어서, 조건에 부합되는 경우가 적어서 값의 집합이 작아지는거 아닐까 라고 생각합니다. => 반대로, 속성(프로퍼티)의 수가 적은 경우, 적은 속성(프로퍼티)만 가지거나 만족하면 되기 때문에, => 전자는, 부합하는 경우의 수가 적어서 "값의 집합이 적다" 고 하는 것이고 후자는, 부합하는 경우의 수가 훨씬 많아서 "값의 집합이 크다" 라고 이해를 했습니다. => 소개팅으로 비유하자면, 남녀 각자가 서로 보유한 조건(속성/프로퍼티)이 많을 수록 / 적을 수록, 이에 부합할 경우의 남자/여자의 수가 적을 수도/많을 수도 있는데 (집합이 작거나/커질 수 있는데) , 조건이 많다면, 최소한 조건은 만족해야 하니 이에 부합할 남자/여자를 찾기 어렵겠죠,,, (타입이 구체적일 수록, 속성의 갯수가 많을 수록, 이를 호환할 타입의 수가 적어서 집합의 크키가 작아진다) => 반대면 찾기 쉬워지겠죠, 즉, 속성의 갯수가 많을 수록, 이 속성들의 갯수를 만족할 만한 타입이 없기 때문에, 타입이 구체적일 수록, 더욱 집합의 크키가 줄어들고, 반대로 타입이 가벼워?질수록, 즉 요구하는 프로퍼티의 숫자가 적다면, 더욱 집합의 크기가 커지는 그런거 라고 생각하는데요, 하는거라고 => 속성관점에서 보면, 속성 타입의 범위가 넓어지면(예:number | string) number 도 받을 수 있고 string 도 받을 수 있어서, 그만큼 영역이 커지기 때문에 값의 집합이 커진다는 의미가 아닐까요,, => 타입스크립트 에 대해서 왜 그런지 자세하게 참고할 블로그가 적어서요 혼자 나름의 정리를 하면서 고군분투 중인데, 짧은 답변이라도 큰 힘이 됩니다. => 감사합니다! => [에디터에서 줄바꿈 간격을 아무리 넣어도 안되네요..;;; 더구나 장문에 글이라,,,죄송합니다. 아무리 수정해도 단락이 나뉘어지지 않네요...;;.]
- 미해결타입스크립트 시작하기
타입스크립트 부분실행 질문드립니다
타입스크립트 설치부터 컴파일까지강의에서 부분실행하시는 것을 보여주셨는데저는 부분실행을 하게 되면 tempCodeRunnerFile.ts 파일이 생성되더라구요 혹시 이 부분 세팅관련해서 아시는게 있으실까요? 코드는 선택한 부분만 딱 떼서 가져가있더라구요
- 미해결타입스크립트 시작하기
함수 타입2 에서 1:53
부분에서 에러는 발생하지 않지마 코드를 돌렸을때 에러가발생합니다. 제일 위에 export {} ; 를 제거하게 되면 코드는 돌아가는데여 하지만 obj 에는 빨간 밑줄이 그어지고 있습니다.
- 미해결타입스크립트 시작하기
1:19 에서 interface String
1:19 에서 interface String 을 만들어도 getParam 에 에러가 발생합니다. 이유가 무엇일까영
- 미해결타입스크립트 시작하기
안녕하세영 정리
안녕하세영 ㅎㅎ 강의 너무 잘 듣고있는데여.. 제가 머리가 안좋다 보니깐 사실 이것들을 모두 외우기는 어렵구.. 따로 블로그에 다가 정리를 할까 하는데 , 그렇게 해도 되나여 ??
- 미해결타입스크립트 시작하기
this 질문
1.25분 쯤에 저기서 this.add 에서 this 는 무엇인가요 ?? this.add = amount => { this.value + = amount; }; 부분에서 this.value 가 가리키는 것은 this.value=0 인것은 알겠는데 , this.add 가 가리키는 것은 무엇인가여 ? 영상을 돌려보니깐 this 가 가리키는것은 counter 라고 하셨느데 , 그럼..인스턴스.. 니깐 인스턴스의 add 가 되는걸까요 >?? ㅠㅠ 그리고 마지막에 그럼 전역을 가리키고 있다고 했는데 전역에 있느것을 출력을 할려면 어떻게 해야하나요?? 밖에 var value =0; 로 선언해도 값이 같던ㄷ ㅔ확인을 어떻게 할수 있을까요 ?