Size: a a a

Node.js — русскоговорящее сообщество

2020 June 19

KG

Kool Guy in Node.js — русскоговорящее сообщество
Evgeny Chesnokov
всем привет, я пришел к вам с миром из вселенной статического типизирования и у меня дергается глаз каждый раз когда я объявляю в коде для ноды параметр, под которым подразумеваю объект с определенными методами, но никак не могу обозначить это в коде. про тайпскрипт и бабель знаю, но хотелось бы узнать, как в таких ситуациях выкручиваются приличные жс-программисты. ну типа: объявляю constructor(versionTracker), где под versionTracker подразумеваю объект с методами getVersion() и setVersion(), есть ли какой-то стандартный способ сообщить об этом дружественному пользователю моего конструктора?
тесты
источник

EC

Evgeny Chesnokov in Node.js — русскоговорящее сообщество
Kool Guy
тесты
а навигация по коду как работает? вот у меня в коде сидит какой-нибудь versionTracker.getVersion(), неужели не хочется к его дефинишену сходить по хоткею?
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Evgeny Chesnokov
а навигация по коду как работает? вот у меня в коде сидит какой-нибудь versionTracker.getVersion(), неужели не хочется к его дефинишену сходить по хоткею?
а навигация по коду не связана со статической типизацией
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Алексей Попов
а зачем было выбирать ноду, если от js дёргается глаз? c#, java, go ждут своих героев
А как например выглядит параметр объекта, который показывает что объект имеет конкретно эти методы? Что он написал?
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
Evgeny Chesnokov
а навигация по коду как работает? вот у меня в коде сидит какой-нибудь versionTracker.getVersion(), неужели не хочется к его дефинишену сходить по хоткею?
Просто работает
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Evgeny Chesnokov
а навигация по коду как работает? вот у меня в коде сидит какой-нибудь versionTracker.getVersion(), неужели не хочется к его дефинишену сходить по хоткею?
Все есть тоже самое, вы просто слишком плохо думаете о жс
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Сергей Пограничный
А как например выглядит параметр объекта, который показывает что объект имеет конкретно эти методы? Что он написал?
не понял вопрос. вероятно, ты ошибся с выбором ответа для реплея
источник

EC

Evgeny Chesnokov in Node.js — русскоговорящее сообщество
Сергей Пограничный
Все есть тоже самое, вы просто слишком плохо думаете о жс
я ничего не думаю о жс, я понимаю что тут все совсем по-другому и потому спрашиваю, как делать правильно
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Алексей Попов
не понял вопрос. вероятно, ты ошибся с выбором ответа для реплея
Не, не ошибся, я про ответ ответа
источник

EC

Evgeny Chesnokov in Node.js — русскоговорящее сообщество
может вы просто в комментариях к конструктору пишете "а сюда ожидается объект с методами getVersion и setVersion" и в мире жс это норм, а может есть какая-то наворочанная аннотация, от которой жизнь становится легче, хз, потому и спрашиваю
источник

KP

Klim Pal in Node.js — русскоговорящее сообщество
источник

EC

Evgeny Chesnokov in Node.js — русскоговорящее сообщество
оо, через дефолтные значения? спасибо, понял
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Сергей Пограничный
Не, не ошибся, я про ответ ответа
стало хуже в плане моего понимания твоего вопроса
если ты про языки со статической типизацией, то этим занимается компилятор (или транслятор), который на этапе своей работы понимает, что объект должен быть определённого типа
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
А что насчет ts делается интерфейс с двумя этими методами его реализует объект, и также ожидаете тип интерфейса на параметр конструктора, передавать можно объект, как в любых статических языках
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Алексей Попов
стало хуже в плане моего понимания твоего вопроса
если ты про языки со статической типизацией, то этим занимается компилятор (или транслятор), который на этапе своей работы понимает, что объект должен быть определённого типа
Ладно, не поняли друг друга
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Алексей Попов
стало хуже в плане моего понимания твоего вопроса
если ты про языки со статической типизацией, то этим занимается компилятор (или транслятор), который на этапе своей работы понимает, что объект должен быть определённого типа
это в общем выглядит странно: клиенты даже не узнают, что они неправильно конструируют объект
но бывает так, что это допустимо
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Evgeny Chesnokov
может вы просто в комментариях к конструктору пишете "а сюда ожидается объект с методами getVersion и setVersion" и в мире жс это норм, а может есть какая-то наворочанная аннотация, от которой жизнь становится легче, хз, потому и спрашиваю
Например если плюсы, там если шаблонный подход еще интереснее, на этапе инстанциирования не позволять разворачивать если шаблон неудовлетворяет требованиям, типо std::enable_if_t, is_arithmetic_t и прочее, короче метапрограмирование, так что жс решает эту жопу боль нормально
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Алексей Попов
стало хуже в плане моего понимания твоего вопроса
если ты про языки со статической типизацией, то этим занимается компилятор (или транслятор), который на этапе своей работы понимает, что объект должен быть определённого типа
Мы с вами регулярно по плюсам тут сцепляемся, а вы мне тут такое пишите((
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Сергей Пограничный
Мы с вами регулярно по плюсам тут сцепляемся, а вы мне тут такое пишите((
🤷‍♂ тут действительно непонимание друг друга
Инстанцирование для шаблонов же на этапе компиляции происходит, так что тут всё укладывается в рамки допустимой боли автора вопроса: ошибка будет видна на этапе компиляции, и пользователи класса сразу узнают, что неверно его используют
Я так понимаю, он хочет аналога в js. То есть ему не хватает этапа компиляции
источник

AF

Artem Fedorchenko in Node.js — русскоговорящее сообщество
Алексей
попробуй завернуть запуск в два разных баш скрипта
Я просто супер не внимательный, реализовал наконец то ! Спасибо тебе за помощь все же !
источник