Параметры функции TypeScript как типы объединения: примеры и использование

Чтобы определить функцию TypeScript с параметром в качестве типа объединения, вы можете использовать оператор канала (|), чтобы указать несколько возможных типов для параметра. Вот несколько примеров:

  1. Простой тип объединения:

    function printId(id: string | number) {
    console.log(id);
    }
    printId("abc"); // Output: abc
    printId(123);   // Output: 123
  2. Тип объединения с конкретными значениями:

    function printStatus(status: "success" | "error" | "loading") {
    console.log(status);
    }
    printStatus("success"); // Output: success
    printStatus("error");   // Output: error
    printStatus("loading"); // Output: loading
  3. Тип объединения с фигурами объектов:

    type Circle = { type: "circle"; radius: number };
    type Rectangle = { type: "rectangle"; width: number; height: number };
    function printShape(shape: Circle | Rectangle) {
    console.log(shape);
    }
    printShape({ type: "circle", radius: 5 });        // Output: { type: "circle", radius: 5 }
    printShape({ type: "rectangle", width: 10, height: 15 });  // Output: { type: "rectangle", width: 10, height: 15 }
  4. Тип объединения с дополнительными свойствами:

    type Person = { name: string; age?: number };
    function printPerson(person: Person) {
    console.log(person);
    }
    printPerson({ name: "John" });          // Output: { name: "John" }
    printPerson({ name: "Jane", age: 25 }); // Output: { name: "Jane", age: 25 }

Это всего лишь несколько примеров того, как можно использовать типы объединения в качестве параметров функции в TypeScript. Помните, что типы объединения позволяют указать несколько возможных типов параметра, и функция может обрабатывать каждый тип соответствующим образом.