Working with Modules
Named Exports
Named exports make selected functions and types available to other modules.
named export
`export` before a declaration marks that declaration as part of a module's public API.
Named Exports
named_exports.ts
Replay: real traced execution (multi-file project)
export type Score = {
name: string;
points: number;
};
export function addBonus(score: Score, bonus: number): Score {
return { ...score, points: score.points + bonus };
}
const bonus: number = 5;
const base: Score = { name: "Ada", points: 10 };
const updated: Score = addBonus(base, bonus);
console.log(`${updated.name}:${updated.points}`);
export type Score = {
name: string;
points: number;
};
export function addBonus(score: Score, bonus: number): Score {
return { ...score, points: score.points + bonus };
}
const bonus: number = 10;
const base: Score = { name: "Ada", points: 10 };
const updated: Score = addBonus(base, bonus);
console.log(`${updated.name}:${updated.points}`);
bonus ← 5, base ← [object Object]
7 return { ...score, points: score.points + bonus };8}910const bonus→ 5: number = 5; //@bonus=1011const base→ [object Object]: Score = { name: "Ada", points: 10 };12const updated: Score = addBonus(base[object Object], bonus5);export function addBonus(score: Score, bonus: number): Score
3 points: number;4};56export function addBonus(score[object Object]: Score, bonus5: number): Score {7 return { ...score[object Object], points: score.points + bonus5 };8}updated ← [object Object]
10const bonus: number = 5; //@bonus=1011const base: Score = { name: "Ada", points: 10 };12const updated→ [object Object]: Score = addBonus(base[object Object], bonus5);1314console.log(`${updated.nameAda}:${updated.points15}`);outputAda:15
bonus ← 10, base ← [object Object]
7 return { ...score, points: score.points + bonus };8}910const bonus→ 10: number = 10;11const base→ [object Object]: Score = { name: "Ada", points: 10 };12const updated: Score = addBonus(base[object Object], bonus10);export function addBonus(score: Score, bonus: number): Score
3 points: number;4};56export function addBonus(score[object Object]: Score, bonus10: number): Score {7 return { ...score[object Object], points: score.points + bonus10 };8}updated ← [object Object]
10const bonus: number = 10;11const base: Score = { name: "Ada", points: 10 };12const updated→ [object Object]: Score = addBonus(base[object Object], bonus10);1314console.log(`${updated.nameAda}:${updated.points20}`);outputAda:20