Можно ли в javascript отделить интерфейс и реализацию в классе? - PullRequest
0 голосов
/ 07 ноября 2018

В javascript, если я не использую класс, я могу сделать что-то вроде этого:

const Module = (function(){
    const myArray = [];
    const myObject = {};
    return {    //this is my interfaces
        myArray,
        myObject,

        myMethod1,
        myMethod2,
        myMethod3,
        myMethod4,

        myMethod99,
    }

    function myMethod1(){}

    function myMethod2(){}

    function myMethod3(){}

    function myMethod4(){}

    function myMethod99(){} 

})

Это дает мне некоторую структуру, которая позволяет мне перечислить все общедоступные свойства и методы сверху, чтобы было легче перемещаться между модулями и видеть, что доступно в модуле, а также легче переходить к Функция при использовании Intellisense из IDE, такой как Visual Studio Code, просто перейдите в модуль, выберите метод, к которому вы хотите перейти, затем нажмите F12, и вы перейдете к функции.

Теперь другой случай с классом в JavaScript:

class Module{

    constructor(){}

    myMethod1(){}   
    myMethod2(){}   
    myMethod3(){}   
    myMethod4(){}

    myMethod99(){}

}

в этом случае я не могу разделить интерфейс и реализацию, что затрудняет навигацию по коду. Есть ли вероятность того, что Javascript сможет справиться с подобным случаем?

1 Ответ

0 голосов
/ 07 ноября 2018

В JavaScript пока нет приватных пользователей. Существует предложение , которое включает эту функцию, и пока оно находится на этапе 3, оно еще не приземлилось.

В JavaScript также нет интерфейсов (поскольку есть даже система типов), и вряд ли он будет добавлен в будущем.

Рассмотрите возможность использования TypeScript, он имеет обе эти функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...