Skip to content

ДЗ: TypeScript. Начало#44

Open
patsiorin wants to merge 6 commits into
React-js-OTUS:mainfrom
patsiorin:homework1
Open

ДЗ: TypeScript. Начало#44
patsiorin wants to merge 6 commits into
React-js-OTUS:mainfrom
patsiorin:homework1

Conversation

@patsiorin
Copy link
Copy Markdown

  1. Task: https://otus.ru/learning/111308/#/homework-chat/34824/
  2. Score (10/10):
    1. Полное выполнение задания (3 балла):
      • (1 балл) Первая часть полностью выполнена;
      • (1 балл) Вторая часть полностью выполнена;
      • (1 балл) Третья часть полностью выполнена.
    2. Соответствие типов (3 балла):
      • (1 балл) В первой части корректно указаны все типы;
      • (1 балл) Во второй части исправлены все ошибки типов;
      • (1 балл) В третьей части корректно описаны типы и написаны функции.
    3. Отсутствие ошибок (3 балла):
      • (1 балл) Нет синтаксических ошибок;
      • (1 балл) Нет логических ошибок, связанных с типами;
      • (1 балл) Код успешно компилируется и работает без ошибок.
    4. Качество кода (1 балл):
      • (1 балл) Код структурирован и читаем.

export const removeFirstZeros = (value: string): string => value.replace(/^(-)?[0]+(-?\d+.*)$/, '$1$2');

export const getBeautifulNumber = (value, separator = ' ') =>
export const getBeautifulNumber = (value: number, separator: string = ' '): string =>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

если мы переменной присваиваем значение то тип прописывать не нужно так как работает утиная типизация

value?.toString().replace(/\B(?=(\d{3})+(?!\d))/g, separator);

export const round = (value, accuracy = 2) => {
export const round = (value: number, accuracy: number = 2): number => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

утиная типизация

/(matrix\(-?\d+(\.\d+)?, -?\d+(\.\d+)?, -?\d+(\.\d+)?, -?\d+(\.\d+)?, )(-?\d+(\.\d+)?), (-?\d+(\.\d+)?)\)/;

export const getTransformFromCss = (transformCssString) => {
export const getTransformFromCss = (transformCssString: string): {x: number, y: number} => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{x: number, y: number} стоит вывести в отдельный тип

Math.round((red * 299 + green * 587 + blue * 114) / 1000);

export const getContrastType = (contrastValue) => (contrastValue > 125 ? 'black' : 'white');
export const getContrastType = (contrastValue: number): 'black' | 'white' => (contrastValue > 125 ? 'black' : 'white');
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отлично)Стоит тоже вынести в отдельным тип

export const longColorRegExp = /^#[0-9a-f]{6}$/i;

export const checkColor = (color) => {
export const checkColor = (color: string): void => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не только void если ф-ия возвращает ошибку то по типу это never


export const getNumberedArray = (arr) => arr.map((value, number) => ({ value, number }));
export const toStringArray = (arr) => arr.map(({ value, number }) => `${value}_${number}`);
export const getNumberedArray = (arr: number[]): {value: number, number: number}[] => arr.map((value, number) => ({ value, number }));
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{value: number, number: number}[] отдельный тип

export const getNumberedArray = (arr) => arr.map((value, number) => ({ value, number }));
export const toStringArray = (arr) => arr.map(({ value, number }) => `${value}_${number}`);
export const getNumberedArray = (arr: number[]): {value: number, number: number}[] => arr.map((value, number) => ({ value, number }));
export const toStringArray = (arr: {value: number, number: number}[]): string[] => arr.map(({ value, number }) => `${value}_${number}`);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{value: number, number: number}[]): string[] отдельный тип

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

number подходит но так же и строка поэтому предлогаю посмотреть в сторону джинериков

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants