прочее)
                  
                  
                  
                  
                  
                  нормально ли так и есть ли тут какие-то подводные камни, на которые я ненароком наткнулся?
                  
                  
                  
                  
                  
                  import { useState } from 'react';
                  
                  
                  
                  
                  
                  type Loaders<T extends Record<string, boolean>> = {
                  
                  
                    loaded: <LoaderField extends keyof T>(loader: LoaderField) => boolean;
                  
                  
                    setLoader: <LoaderField extends keyof T>(
                  
                  
                      loader: LoaderField,
                  
                  
                      value: boolean
                  
                  
                    ) => void;
                  
                  
                  };
                  
                  
                  
                  
                  
                  export const useLoaders = <T extends Record<string, boolean>>(
                  
                  
                    loadersObj: T
                  
                  
                  ): Loaders<T> => {
                  
                  
                    const [loaders, setLoaders] = useState(loadersObj);
                  
                  
                  
                  
                  
                    const setLoader = <LoaderField extends keyof T>(
                  
                  
                      loader: LoaderField,
                  
                  
                      value: boolean
                  
                  
                    ): void => {
                  
                  
                      setLoaders({
                  
                  
                        ...loaders,
                  
                  
                        [loader]: value,
                  
                  
                      });
                  
                  
                    };
                  
                  
                  
                  
                  
                    const loaded = <LoaderField extends keyof T>(
                  
                  
                      loader: LoaderField
                  
                  
                    ): boolean => {
                  
                  
                      return loaders[loader];
                  
                  
                    };
                  
                  
                  
                  
                  
                    return {
                  
                  
                      setLoader,
                  
                  
                      loaded,
                  
                  
                    };
                  
                  
                  };
                  
                  
                
 Vetro
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Vetro
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  короче тут все ок видимо, спс))
Обсуждают сегодня