samizdam
@samizdam

Как правильно делать экспорт / импорт классов TypeScript из npm пакета?

В своём пакете, написанном на TS я использую пространства имён и располагаю каждый класс в отдельном файле. Например так:
// src/MyProject/Foo.ts
namespace MyProject{
  export class Foo{}
}
// src/MyProject/Bar.ts
namespace MyProject{
  export class Bar{}
}


Потом я это дело собираю в единый index.js при помощи tsc и упаковываю в npm-пакет.
В другом проекте, я устанавливаю данный пакет в node_modules и хочу наследовать его классы. Например так:

namespace AnotherProject {
  export class Baz extends MyProject.Bar{}
}


В node и TS столько синтаксических конструкций для этого— *.d.ts, require, export, import, module, namespace, ref — что я уже запутался... Каков правильный синтаксис для экспорта из пакета и последующего импорта в клиентском коде мне следует использовать?

PS: Typescript version 1.8.9, nodejs 5.4.1
  • Вопрос задан
  • 1691 просмотр
Пригласить эксперта
Ответы на вопрос 1
@sergeystepanov1988
Почитайте про namespace здесь. Официальная документация говорит, что namespace на самом деле не нужны, когда код распределен по модулям.
Поэтому просто используйте export в модулях и import в файлах, использующих эти модули.
/* src/Animal.ts */
export default Animal {
    constructor(){}
}

/* src/Cat.ts */
import Animal from './Animal';
export default Cat extends Animal {
    constructor(){
        super();
    }
}

/* index.ts */
import  Cat from 'src/Cat';
let kitty = new Cat();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы