class IdolModel{
name: string;
age: number;
constructor(name: string, age: number){
this.name = name;
this.age = age;
}
}
// export default interface ICat{
// name:string;
// breed:string;
// }
const number = 12;
export default { // IdolModel키에 IdolModel
IdolModel,
number,
// ICat //인터페이스는 안된다. 인터페이스는 타입스크립트에 타입이기 때문이다. 그래서 객체에 넣을 수 없다.
}
// export default number;
보면 export를 객체형태로 IdolModel과, number를 보내고 있다.
하지만 interface인 ICat은 객체 형태로 보낼 수 없다. 그 이유는 인터페이스는 타입스크립트에 타입이기 때문이다.
interface는 export default interface ICat으로 보내주어야 한다.
import IdolModel from "./1_export_default_1"; // IdolModel은 이름을 지어줄 수 있다.
// console.log(IdolModel)
// const iu = new IdolModel('아이유', 23);
// console.log(iu)
const yuJin = new IdolModel.IdolModel('안유진', 23);
console.log(yuJin);
console.log(IdolModel.number);
받을 때에는 IdolModel이 객체이기 때문에 key값으로 value를 찾아야 한다.
export class IdolModel{
name:string;
age: number;
constructor(name: string, age: number){
this.name = name;
this.age = age;
}
}
export const rose = new IdolModel('로제', 28);
export const number = 999;
export interface ICat{
name:string;
age:number;
}
export default를 하면 하나만 보낼 수 있었다. 여러개 보낼려면 객체로 묶어서 보내줘야 했다
하지만 export만 사용하면 여러개를 보낼 수 있다.
import { IdolModel, rose, number, ICat } from './2_export_1'; // 그냥 export할때에는 실제로 import해올 명칭을 정확히 적어줘야 한다.
const iu = new IdolModel('아이유', 32);
console.log(iu);
console.log(rose);
console.log(number);
const cat: ICat = {
name: '냥냥이',
age: 12,
}
console.log(cat);
import 할 때에는 export할 때 정확한 명칭으로 import해야한다. 그리고 중괄호를 꼭 해주어야 한다.
import { IdolModel as IM, rose, number, ICat } from "./2_export_1";
console.log(new IM('아이유', 32));
// console.log(new IdolModel('아이유', 32)) //에러발생
as를 사용하면 as로 별칭한 이름으로 사용해야 한다.
IdolModel로 사용하면 에러가 발생한다.
import에서 * 와일드카드 사용하기
import * as allTogether from "./2_export_1";
console.log(allTogether.number);
// 와일드 카드를 써가지고 모두 불러오게 되면 모든 엑스포트들이 하나의 객체처럼 묶여서 불러와진다.
console.log(allTogether.rose);
와일드 카드를 써가지고 모두 불러오게 되면 모든 엑스포트들이 하나의 객체처럼 묶여서 불러와진다.
export const rose = new IdolModel('로제', 28);
export const number = 999;
export interface ICat{
name:string;
age:number;
}
export default{
name: '코드팩토리',
age : 23,
} //export 와 export default를 동시에 쓸 수 있다.
import cf, { rose, number } from "./2_export_1";
console.log(cf);
console.log(rose);
export에서 export와 export default 동시에 사용 가능하다.
import시에는 default부분은 중괄호 밖에 export부분은 중괄호 안에 작성한다.
baseUrl을 true로 하면
tsconifg.json파일 기중으로 찾게 된다. 현재 경로가 아닌