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

bonus
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}`);
  1. 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);
  2. 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}
  3. 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
  1. 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);
  2. 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}
  3. 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