
Лаб_3_Ф Головков И.Е. 12002108
.docx
БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ
Кафедра информационных и робототехнических систем
Отчет по лабораторной работе № 3
по дисциплине «Моделирование технических систем»
студента очного отделения
3 курса 12002108 группы
Головкова Игоря Евгеньевича
Проверила:
ст. пр. Скрипина Ирина Ивановна
БЕЛГОРОД, 2024
Лабораторная работа №3 (Frontend)
Работа с TypeScript
Цель работы
1. Изучить основы синтаксиса TypeScript
2. Изучить основы написания сложных типов-утилит на TypeScript
Задание для подготовки к работе
Изучить лекционный материал и теоретический материал настоящей
лабораторной работы.
Порядок выполнения работы
1. Изучить теоретический материал по лекции «TypeScript.
Улучшенный JavaScript»
2. Используя TypeScript, выполнить задания своего варианта.
Ход работы:
Задание №1
Реализовать вспомогательный тип If. Он принимает условие C и
типы T и F. Если условие C правдивое, верните тип T, иначе - F.
Например:
type A = If<true, "a", "b">; // 'a'
type B = If<false, "a", "b">; // 'b
Листинг решения:
type If<C extends boolean, T, F> = C extends true ? T : F;
type A = If<true, "first", "second">;
let variableOfA: A = "first";
console.log(variableOfA);
Задание №2
Напишите функцию, которая находит самую длинную строку общего
префикса среди массива строк.
Например:
["flower","flow","flight"]. “fl”
["dog","racecar","car"]. “”
Листинг решения:
function longestCommonPrefix(wordsList: string[]): string {
if (wordsList.length === 0) {
return "";
}
let prefix = wordsList[0];
for (let i = 1; i < wordsList.length; i++) {
while (wordsList[i].indexOf(prefix) !== 0) {
prefix = prefix.slice(0, prefix.length - 1);
if (prefix === "") {
return "";
}
}
}
return prefix;
}
// Примеры использования
console.log(longestCommonPrefix(["flower", "flow", "flight"])); // Выводит "fl"
console.log(longestCommonPrefix(["dog", "racecar", "car"])); // Выводит ""
Ссылка на pull request:
https://github.com/Brarion/front-course-bgu/pull/10