Задать вопрос

Как избавиться от namespace во время импорта модуля?

Есть модуль /lib/Response.ts:

export class Response {
    /* bla-bla */
}


Вызываю его вот так в /app.ts:

import Response = require('./lib/Response');

var response = new Response.Response();


И мне не нравится вот это избыточное Response.Response, как сделать так чтобы можно было просто:

import Response = require('./lib/Response');

var response = new Response();
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
Sivkoff
@Sivkoff
Web Developer
Почему бы не импортить механизмом импорта ES6? TypeScript его прекрасно поддерживает.
import {Response} from './lib/Response';
var response = new Response();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
TheCreator
@TheCreator
Бездельник
Мне вот так нравится:
Код модуля
function newClass (settings) {
  return new Class(settings);
}
function Class(settings){
 this.settings = settings;
}
Class.prototype.someMethod = function () {
 var _this = this;
 console.log(_this.settings);
};
module.exports = newClass;

Код основной программы
var classInstance = require('./classFile.js')({'some':'settings'});
classInstance.someMethod();


Но вариантов бесчисленное множество, на самом деле, вот пара хороших примеров, где обсуждается, как проектировать модули:
bites.goodeggs.com/posts/export-this
darrenderidder.github.io/talks/ModulePatterns
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы