Skip to content

Instantly share code, notes, and snippets.

View natanfeitosa's full-sized avatar

Natanael dos Santos Feitosa natanfeitosa

View GitHub Profile
function stringToNumber(str: string) {
str = str.trim()
if (/[^\d]/.test(str)) {
throw new Error('Deve conter apenas numeros')
}
return Array.from(str).reverse().reduce((acc, cur, idx) => {
let val = (cur.charCodeAt(0) - 48)
return acc + (val * 10 ** idx)
import { useState, useEffect } from 'react';
export default function useSearchParams() {
const getSearchParams = () => {
const queryString = window.location.search;
return new URLSearchParams(queryString);
};
const [searchParams, setSearchParams] = useState(getSearchParams);
type GetArrayIndexValue<A extends [], K extends number | string> = K extends `.${infer I}` ? GetArrayIndexValue<A, I> : K extends number ? A[K] : never
type GetObjectPathValue<O extends object, P extends string> = P extends `${infer A}.${infer B}` ? A extends keyof O ? O[A] extends object ? GetObjectPathValue<O[A], B> : O[A] : never : P extends keyof O ? O[P] extends [] ? GetArrayIndexValue<O[P], P> : O[P] : never
const obj = {
a: {
b: 1,
c: [1, 2],
d: [
[12],