Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Интересно сравнить TypeScript с Kotlin на небольших реальных примерах  [new]
private
Member

Откуда:
Сообщений: 1764
Интересно сравнить TypeScript с Kotlin на небольших реальных примерах. Хотелось бы собрать пару тройку таких сравнений, на тайпскрипте и котлине.
Кто знает Котлин, напишите плиз.

Например - обработчик событий, (реальный пример - это может быть в интерфейсе что-то типа реакт-редукса, или в базе данных евент сорсинг, обработка сообщений и т.п.) каждое событие - это обьект. Обработчик - принимает на вход событие, делает что-то полезное.
Форма реализации свободная, в ТайпСкрипте это свитч, но может в Котлине есть что-то другое тож норм. Главное чтобы сохранялась типобезопасность и проверялись типы событий, что мы не забыли никакое событие обработать и т.п.

interface CreatePost {
  type: 'create post'
  text: string
}

interface DeletePost {
  type: 'delete post'
  id:   string
}

// Юнион тип
type Command = CreatePost | DeletePost

const execute = (command: Command): boolean => {
  // Свитч, который заставит обработать все команды, и покажет ошибку 
  // если мы пропустим какую-то команду, или попробуем поставить неправильный тип команды.
  switch (command.type) {

    // Проверка значения, если будет опечатка покажет ошибку
    case 'create post':

      // Автокастинг, язык знает что в данной ветке свитча это не 
      // базовый тип команды, а CreatePost
      console.log(command.text) // Autocasting
      return true

    case 'delete post':
      console.log(command.id)
      return true
  }
}

const commands: Command[] = [
  { type: 'create post', text: 'Zerg on Tarsonis!' },
  { type: 'delete post', id: '1' }
]

commands.forEach(execute)
4 апр 19, 18:02    [21853084]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить