2016-04-14 3 views
0

Итак, у меня довольно большое приложение sails.js, и я планирую перенести базу кода на TypeScript в течение следующих нескольких месяцев, я модифицировал загрузчик модулей для использования ts-node (я, вероятно, скоро откройте заявку на растяжение), и все в порядке.Перенос функции-конструктора в TypeScript

Проблема в том, что я не очень доволен тем TypeScript, который я придумываю, и хотел узнать, есть ли у кого-либо предложения.

В парусах крючок выглядит примерно так:

module.exports = function(sails) { 
    return { 
    initialize: function(next) { 
     return next(); 
    } 
    }; 
}; 

машинопись Первоначально я придумал был

class Hook { 
    constructor(public sails: any) {} 

    initialize(next: Function) { 
    return next(); 
    } 
} 

export = function(sails: any) { 
    return new Hook(sails); 
} 

Но я не нахожу функцию экспорта большими, и есть проблема что паруса связывают область действия, и поэтому это вызовет некоторые проблемы. Решение состоит в том, чтобы использовать жир стрелку, но я не большой поклонник решение, которое я придумал ...

class Hook { 
    constructor(public sails: any) {} 

    initialize = (next: Function) => { 
    return next(); 
    }; 
} 

export = function(sails: any) { 
    return new Hook(sails); 
} 

Любые предложения?

Благодаря

ответ

0

Я не уверен, что вы точно ищете, но если вы не хотите, чтобы полностью перейти ООП с class Hook, вы можете точно также согласиться на interface Hook. Таким образом, вы можете сохранить свой исходный код и просто добавить к нему некоторые типы.

interface Hook { 
    initialize(next: Function); 
} 

export = function(sails: any) : Hook { 
    return { 
    initialize: function(next) { 
     return next(); 
    } 
    } 
} 
Смежные вопросы