Barrel це спосіб згортання експорту з кількох модулів в один зручний модуль. Сам барель є файлом модуля, який повторно експортує вибрані експорти інших модулів.
Замість цього можно використовувати barrel demo/index.ts який реекспортує:
// demo/index.tsexport*from'./foo';// re-export all of its exportsexport*from'./bar';// re-export all of its exportsexport*from'./baz';// re-export all of its exports
Зараз можно використати простий синтансис:
Named exports
Іменований експорт.
Замість експорту всього через *, ви можете вибрати модуль для експорту по назві. Наприклад, baz.ts має функції:
Якщо ви не хочете експортовать getBaz / setBaz з demoнатомість ви можете помістити їх у змінну, імпортувавши їх у назву та експортувавши цю назву, як показано нижче:
import { Foo, Bar, Baz } from '../demo'; // demo/index.ts is implied
// demo/foo.ts
export class Foo {}
// demo/bar.ts
export class Bar {}
// demo/baz.ts
export function getBaz() {}
export function setBaz() {}
// demo/index.ts
export * from './foo'; // re-export all of its exports
export * from './bar'; // re-export all of its exports
import * as baz from './baz'; // import as a name
export { baz }; // export the name
import { Foo, Bar, baz } from '../demo'; // demo/index.ts is implied
// usage
baz.getBaz();
baz.setBaz();
// etc. ...