Встречается на собеседованиях • сегодня

На что можно заменить интерфейсы в JavaScript

В JavaScript нет интерфейсов как в TypeScript, но их можно эмулировать:

  1. Дук-тайпинг (проверка наличия методов/свойств):
js
function processUser(user) {
  if (!user.name || !user.getId) {
    throw new Error('Invalid user interface');
  }
  // ...
}
  1. JSDoc (документация + проверки в IDE):
js
/**
 * @interface
 * @property {string} name
 * @property {function(): number} getId
 */
  1. Классы (наследование + проверка instanceof):
js
class UserInterface {
  getName() { throw new Error('Not implemented') }
}
class User extends UserInterface {}
  1. PropTypes (для React-компонентов):
js
MyComponent.propTypes = {
  name: PropTypes.string.isRequired,
  getId: PropTypes.func.isRequired
};
  1. Схемы валидации (Joi, Yup):
js
const userSchema = Joi.object({
  name: Joi.string().required(),
  getId: Joi.func().required()
});
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы