해결된 질문
작성
·
331
0
안녕하세요, 강사님!
Entity 생성 시, BaseEntity를 Entity.ts에서 import하시는데 그 이유가 궁금합니다.
typeorm에서 바로 import해도 될 것 같은데, Entity.ts에서 import해오는 이유가 뭔지 잘 모르겠어서요!
답변 1
1
안녕하세요!
이 둘은 사실 다릅니다 ~
import {
BaseEntity,
} from "typeorm";
import BaseEntity from './Entity';
위에 것이 typeorm에서 가져온 BaseEntity이며
아래에 있는 것은 Entity.ts에서 만들어준 Entity입니다.
그러니 아래에 있는 BaseEntity는
typeorm의 Base Entity + Entity 클래스에 새로 넣어준 것들까지 포함하게 됩니다.
감사합니다!
안녕하세요! 이거는 제가 네이밍을 혼란스럽게 해서 그런 것 같습니다 ㅎㅎ
export default로 했다면
import로 가져올 때 어떠한 이름으로 가져오든 export default 한 Entity를 가져오게 됩니다.
그러니 import Entity from './'으로 해도
=> class Entity를 가져오게 되며
import BaseEntity from './'을 해도
=> class Entity를 가져오게 되는 것입니다!
감사합니다!
헷갈리시면 다시 질문해 주시면 감사하겠습니다!!
아하, 제가 export default에 대해서 제대로 모르고 있었네요. 늘 같은 이름으로만 내보내고 가져오다보니..ㅎㅎ 빠르고 친절한 답변 감사합니다! 강의 잘 듣고 있습니다. 좋은 한 주 보내세요 :)
+) 참고: export (export default 기본 내보내기는 어떤 이름으로도 가져올 수 있습니다.)
안녕하세요, 강사님. 빠른 응답 감사합니다. 아직 이해가 명쾌하게 되지 않아서 꼬리 질문남깁니다.
Entity.ts 파일을 보면, 코드가 아래처럼 되어있는데
import { BaseEntity, CreateDateColumn, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
export default abstract class Entity extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}
설명해주신 typeorm의 Base Entity + Entity 클래스에 새로 넣어준 것들까지 포함합니다. 이 부분은 이해했으나,
저는 export default abstract class Entity extends BaseEntity 이기 때문에, 모듈을 export 시, (BaseEntity가 아닌) Entity라는 이름으로 내보내야하는 것이 아닌가 생각했습니다.
일단 클래스 개념도 익숙치 않은데다가 추상클래스를 잘 모르기 때문에 이해를 잘 못하고 있는 것 같은데, 혹시 제가 어떤 부분을 놓치고 있는것인지 설명해주실 수 있으실까요? 혹은 관련 키워드 주시면 큰 도움이 될 것 같습니다! 거듭 감사합니다.