shishovlad / adpopov-notes

0 stars 0 forks source link

Составление интерфейсов и типов #12

Open shishovlad opened 1 week ago

shishovlad commented 1 week ago

https://github.com/shishovlad/adpopov-notes/blob/30d6242fa3eaaa159fef3f06cd5a9fd09cdd6773/src/types/index.d.ts#L1-L6

  1. Желательно разбивать вложености на отдельный типы/интерфейсы. В данном случае следует разбить типизацию свойства tasks.
 interface INote { 
   id: PropertyKey 
   title: string 
   additionalText: string 
   tasks: Array<INoteTask> // Добавляем сюда
 } 

// Описываем здесь
 interface INoteTask {
   id: PropertyKey;
   name: string;
   done: boolean
}
  1. Кажется, что вместо PropertyKey можно указать string, так как uuidv4 нам вернет строку (или стоит в момент записи делать ее строкой). И дальше в таком случае мы наверняка всегда знаем, что тут будет строка, и не нужно в коде оборачивать в String();
  2. Синтаксис с массивом через дженерик Array<T> чуть сложнее и старее, чем просто T[], но это на любителя;
    type R = Array<T>
    type R = T[]