 
  
  a => a.name == "Adam"
/*
* стрелочная функция, принимающая на вход один аргумент, 
* который может быт назван как угодно, 
* и возвращающая при вызове результат сверки свойства name у переданного аргумента
* со строкой 'Adam'
*/let arr = {
    object1 = {
        name: "Adam",
        year: 1997
    }, object2 = {
        name: "John",
        year: 2000
    }, object3 = {
        name: "Conor",
        year: 2001
    }, object4 = {
        name: "Adam",
        year: 2000
    }
}let arr = [
    {
        name: "Adam",
        year: 1997
    }, {
        name: "John",
        year: 2000
    }, {
        name: "Conor",
        year: 2001
    }, {
        name: "Adam",
        year: 2000
    }
]let arr = {
    object1: {
        name: "Adam",
        year: 1997
    }, object2: {
        name: "John",
        year: 2000
    }, object3: {
        name: "Conor",
        year: 2001
    }, object4: {
        name: "Adam",
        year: 2000
    }
}ts транспилировать, если прикрутить соотв. примочку. Например, про WebPack в документации TypeScript, или про TypeScript в конфигурации Vite (умеет из коробки).       
  
  package main
import (
    "fmt"
    php "github.com/kovetskiy/go-php-serialize"
)
func main() {
    s := `a:6:{s:7:"__flash";a:1:{s:3:"mes";s:5:"Hello";}s:4:"__id";s:36:"3c5035d9-aea1-4f08-8325-9e598921e2a9";}`
    val, err := php.Decode(s)
    if err != nil {
        fmt.Println(err)
        return
    }
    session := val.(map[interface {}]interface {})
    flash := session["__flash"].(map[interface {}]interface{})
    fmt.Println("id", session["__id"])
    fmt.Println("mes", flash["mes"])
}session, ok := val.(map[interface {}]interface {})
    if !ok {
        // с val явно что-то не так, оно не соответствует типу map[interface {}]interface {}
    }
    flash, ok := session["__flash"].(map[interface {}]interface{})
    if !ok {
        // ...
    }// юзер вводит адрес http://qna.habr.com/
// браузер ресолвит это имя в IP адрес и подключается к нему по порту 80
// браузер шлёт запрос:
GET / HTTP/1.1
Host: qna.habr.com
Accept-Language: ru
// сервер, видя такое дело, соображает, что речь про сайт qna
// и что надо отдать корневую страницу
// отдаёт контент QnAfreelance.habr.com выглядел бы похоже:// юзер вводит адрес http://freelance.habr.com/
// браузер ресолвит это имя в (тот же) IP адрес и подключается к нему по порту 80
// браузер шлёт запрос:
GET / HTTP/1.1
Host: freelance.habr.com
Accept-Language: ru
// сервер понимает, что речь про сайт freelancelet a = 'true';
if (typeof(a) === 'string'
 || typeof(a) === 'boolean'
 || typeof(a) === 'number'
){
  console.log(typeof(a));
} else {
  console.log('Тип а не определен');
}let a = 'true';
if ( ['string', 'boolean', 'number'].includes(typeof(a)) ){
  console.log(typeof(a));
} else {
  console.log('Тип а не определен');
}let a = 'true';
if (typeof(a) === 'string'){
  console.log(a + ' - строка');
} else if (typeof(a) === 'boolean') {
  console.log(a + ' - логический тип');
} else if (typeof(a) === 'number') {
  console.log(a + ' - число');
} else {
  console.log('Тип а не определен');
}let a = 'true';
switch (typeof(a)) {
  case 'string':
    console.log(a + ' - строка');
    break;
  case 'boolean':
    console.log(a + ' - логический тип');
    break;
  case 'number':
    console.log(a + ' - число');
    break;
  default:
    console.log('Тип а не определен');
}php  app.php и процессы висят, работают. <?php
function run($timerid, $params) {
    var_dump($timerid);
    var_dump($params);
}
// Каждые 10 секунд выполнять функцию run
Swoole\Timer::tick(10000, "run", ["param1", "param2"]);// Enable the hook for MySQL: PDO/MySQLi
Co::set(['hook_flags' => SWOOLE_HOOK_TCP]);
// Setup a coroutine context
Co\run(function() {
    // Execute a query inside a coroutine
    go(function () {
        // Already setup the $pdo connection before...
        $statement = $pdo->prepare("SELECT * FROM users LIMIT :limit, :offset");
        $statement->execute(['limit' => $limit, 'offset' => $offset]); 
        $data = $statement->fetchAll();
        // Process $data result...
    });
});