44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
tsc 로 컴파일 생성 시 일부는 코드가 안나옵니다.
1_problem_with_js 는 정상적으로 컴파일 되는데2_basic.js 는 컴파일은 되지만 첨부 사진과 같이 코드 1줄만 나옵니다.원인을 알 수 있을까요?
- 미해결[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
Generic in Function 강의 instantiator 질문입니다.
Generic in Function (함수에서 제너릭 사용하기) 강의 내용에서의 질문입니다.class Car { brand: string; codeName: string; constructor(brand: string, codeName: string) { this.brand = brand; this.codeName = codeName; } } function instantiator<T extends { new(...args: any[]): {} }>(classObject: T, ...args: any[]) { return new classObject(...args); } console.log(instantiator(Car, 'BMW', 1111));Car의 경우 생성자의 codeName 인자의 타입이 string인데...args의 타입을 any[]로 지정했기 때문에instantiator(Car, 'BMW', 1111)에서 codeName에 number값을 넣어도 오류가 발생하지 않았습니다.물론 단순히 할당하기만 하는 코드이기 때문에 런타임에서도 오류가 발생하지는 않을 것 입니다.좀 더 정확한 타입 체킹을 할 수 있도록 위 케이스에서 클래스 생성자의 인자 타입까지 반영해서 체크하는 instantiator를 작성할 수 있을까요?
- 미해결[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
타입스크립트 Class Override 관련 질문
상속받은 Class에서 부모 메소드 Override 조건이// 1) 부모 메서드와 반환 타입이 일치해야한다.// 2) 부모 메서드에 필수인 파라미터들이 존재해야한다.// 3) 부모 메서드에서 optional인 파라미터들이 자식에서// 필수로 지정되면 안된다.라고 강의에서 이야기 하셨는데,3)의 경우 잘못된게 아닌가 싶어서 문의드립니다.https://www.typescriptlang.org/play?#code/MYGwhgzhAEAKYCcCmA7ALtA3gKGn6EAFgPYCuaAFCmALZIBcBaCAligOYA00Y7SA-IxSkaAIyQIAlFlz45yNKQQpoAAwAkmanQC+gH1HogCVHAqo0BCVQG5ZeHdlvZsoSDADChFiAAm0JAA80qJ4w8MjoOHJEZJTaDEysHNy8scJiEpKMEMxs7DJyefgKSioQpAAOEgB0keRUtEiSVnK2OkAclass Parent { shout(name: string, age?: number) { return `${name}야 안녕!`; } } class Child extends Parent { shout(name: string, age: number): string { return super.shout(name); } }위 링크와 같이 부모 클래스에 존재하는 optional 파라미터가 자식 클래스에서 필수로 지정되어도 오류가 발생하지 않는 것 같습니다.제가 확인하고 정리한 요건은 다음과 같습니다.부모 메소드와 자식 메소드의 반환 타입이 일치해야 함부모 메소드에서 필수인 파라미터들은 자식 메소드에도 동일한 타입으로 필수 파라미터로 존재해야 함부모 메소드에 존재하지 않는 필수인 파라미터가 자식 메소드에 존재하지 않아야 함부모 메소드에 존재하는 optional 파라미터는 자식 메소드에 존재하지 않아도 됨(단, 존재할 경우 타입은 일치해야함)자식 메소드에 optional 파라미터는 추가적으로 존재해도 됨혹시 제가 잘못 생각한 부분인지 확인 부탁드립니다. 감사합니다.
- 해결됨[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
vscode가 아닌 intellij에서 ts 파일을 실행하려 하는데 에러가 발생합니다.
"C:\Program Files\nodejs\node.exe" --require ts-node/register C:/Users/mingyo/study/nodejs/ts-practice/1_basic/1_problem_with_js.ts node:internal/modules/cjs/loader:1078 throw err; ^Error: Cannot find module 'ts-node/register' Require stack: - internal/preload at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15) at Module._load (node:internal/modules/cjs/loader:920:27) at internalRequire (node:internal/modules/cjs/loader:174:19) at Module._preloadModules (node:internal/modules/cjs/loader:1431:5) at loadPreloadModules (node:internal/process/pre_execution:606:5) at setupUserModules (node:internal/process/pre_execution:118:3) at prepareExecution (node:internal/process/pre_execution:109:5) at prepareMainThreadExecution (node:internal/process/pre_execution:37:3) at node:internal/main/run_main_module:10:1{ code:'MODULE_NOT_FOUND', requireStack: ['internal/preload'] }Node.js v18.16.0 ]0;C:\Program Files\nodejs\node.exe Process finished with exit code 1 위와 같이 에러가 발생하는데 ts-node/register라는 모듈을 npm으로 설치해야 하나요?
- 미해결[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
code runner- output이 깨져요
위와 같이 아웃풋이 깨집니다.js에서 사용할 때는 깨지지 않았는데, 어떻게 해결해야 할지 여쭙습니다 ㅠ
- 해결됨[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
클래스 제너릭 상속시 super constructor 설정 안하는 이유
Generic in inheritance 강의에서 궁금한점이 있어서 질문 드립니다!밑에 코드처럼 자식 클래스(Winter, Winter2)가 부모 클래스(Person)로 부터 상속을 받았는데Winer와 Winter2 둘다 super constructor로 부모 속성을 설정 하지 않았는데어떻게 정상적으로 인스턴스에서 부모속성을 가져오는지 궁금합니다~ class Person<T, Z>{ name: T; age: Z; constructor(name: T, age: Z) { this.name = name; this.age = age; } } // Winter 클래스 상속 class Winter extends Person<string, number>{ }; const winter = new Winter('김민정', 22); console.log(winter); // Winter2 클래스 상속 class Winter2<T, Z> extends Person<T, Z>{ } const winter2 = new Winter2('김민정', 22); console.log(winter2); 보통의 경우 이렇게 해줘야 하지 않나요? 이렇게 해도 작동은 잘 되더라고요ㅎㅎ;; constructor(name:string, age:number){ super(name, age) } 그런데 또 이런 경우는 super constructor 하지 않으면 에러가 발생합니다 ㅎ;class Winter3<T, Z, Part> extends Person<T, Z>{ part?: Part; constructor(part?: Part) { this.part = part } }