๋ค์์คํ์ด์ค๋ ํ์ผ ๊ฐ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด๋ฉฐ
์ฝ๋๋ฅผ ๊ณต์ ํ๊ณ TypeScript์์ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ์ค๋๋ ๋ฐฉ์์ด๋ค.
javascript๋ export๋ ์ต์์ await๊ฐ ์๋ ํ์ผ์ ๋ชจ๋์ด ์๋ ์คํฌ๋ฆฝํธ๋ก ๊ฐ์ฃผํ๋ค.
์คํฌ๋ฆฝํธ ์์์ ์์ ํ ๋ ๋ณ์์ ํ์ ์ ๊ณต์ ์ ์ญ ์ค์ฝํ ๋ด๋ถ์ ์๋ค๊ณ ์ ์ธ๋๋ค.
์ฆ, export๋ ์ต์์ await ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด TypeScript๋ ๋ชจ๋ ์ฝ๋๊ฐ ํ ์ ์ญ ์ค์ฝํ์ ์๋ค๊ณ ๊ฐ์ฃผํ๋ค.
function add(x: number,y: number){
return x + y;
}
function sample<T>(arr: T[]):T{
const idx = Math.floor(Math.random() * arr.length);
return arr[idx];
}
sample([12, 3, 34]);
add(1,2);
์ง๊ธ์ ๋ชจ๋๋ก ์์ ํ์ง ์์ผ๋ฏ๋ก ๋ชจ๋ ์ ์ญ ์ค์ฝํ ์์์๋ค.
export ํค์๋๋ฅผ ๋ฃ์ผ๋ฉด TypeScript๋ ๋ชจ๋์์ ์์
ํ๋ค๊ณ ์ธ์ํ๋ค.
๋ค๋ฅธ ๋ชจ๋์ ๋ณ์์ ํ์
์ ๊ฐ์ ธ๋ค ์ฐ๊ณ ์ถ์๋ export์ import๋ฅผ ์ฌ์ฉํด ๊ฐ์ ธ๋ค ์ธ ์ ์๋ค.
export function add(x: number,y: number){
return x + y;
}
export function sample<T>(arr: T[]):T{
const idx = Math.floor(Math.random() * arr.length);
return arr[idx];
}
import {add,sample} from "./utils.js" // javascript๋ก ์ปดํ์ผ๋๊ธฐ ๋๋ฌธ์ ํจ์๋ช
์ .js๋ก ์ ์ธ
sample([12, 3, 34]);
add(1,2);
๋ธ๋ผ์ฐ์ ์์ export, import ๋ชจ๋ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ES๋ชจ๋๋ก ๋ณ๊ฒฝํ๊ณ script ํ๊ทธ์์ module ํ์ ์ ์ ์ธํด์ค์ผํ๋ค.
"module" : "ES6" // 1. commonjs๋ก ๋์ด ์์ผ๋ฉด ES๋ก ์์๋๋ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ผํ๋ค.
<body>
<script type="module" src="./dist/index.js"> </script> <!-- 2. type์ module์ด๋ผ๊ณ ์ ์ธํด์ค๋ค. -->
</body>
export๋ ํจ์, ํด๋์ค, ์์ ๋ฑ ๋ญ๋ export๋ฅผ ํ ์ ์๋ค.
export default ํค์๋๋ก ๊ธฐ๋ณธ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ๋ง๋ค ์ ์๋ค.์ด ํค์๋๋ ํ์ผ์ด๋ ๋ชจ๋๋ง๋ค ํ๋๋ง ๋ง๋ค ์ ์๋๋ฐ ๊ธฐ๋ณธ ๋ด๋ณด๋ด๊ธฐ์ ํด๋นํ๋ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ {}๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ค.
export default class User{
constructor(public username: string, public email: string){}
logOut(){
console.log(`${this.username} logs out!!`);
}
}
export function userHelper(){
console.log("Help!");
}
import {add,sample as randomsample} from "./utils.js" // as๋ก ๋ช
์นญ์ ๋ฐ๊ฟ์ค ์ ์๋ค.
import User,{userHelper} from "./User.js"; // export default๋
randomsample([12, 3, 34]);
ํ์
์ ๊ฐ์ ธ์ฌ ๋ Babel ๊ฐ์ ํธ๋์คํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ TypeScript 3.8๋ฒ์ ๋ถํฐ
import ๋ฌธ์ type์ ์ถ๊ฐํ๋ฉด ์์ ํ๊ฒ ํ์
์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
export interface Person{
username: string;
email: string;
}
export type Color = "red" | "blue";
import type {Person} from './types.js'; // type ์ด๋ผ๊ณ ๋ช
์ํ๋ฉด ์์ ํ๊ฒ type์ ๊ฐ์ ธ์ฌ ์ ์์
export default class User implements Person{
constructor(public username: string, public email: string){}
logOut(){
console.log(`${this.username} logs out!!`);
}
}
export function userHelper(){
console.log("Help!");
}