export const tryInt = (s: string): number | null => { try { return parseInt(s); } catch (e) { console.error(e); return null; } }; export const tryMaybeInt = (maybeString: string | null): number | null => { if (maybeString) { try { return parseInt(maybeString); } catch (e) { console.error(e); } } return null; }; export const hasValue = (value?: T | null): value is T => { return value !== undefined && value !== null; }; export type WithStringDates = { [K in keyof T]: T[K] extends Date ? string : T[K] extends Date | null | undefined ? string | null | undefined : T[K] extends Record ? WithStringDates : T[K] extends Record | null | undefined ? WithStringDates | null | undefined : T[K]; }; export const notNullOrUndefined = (t: T | null | undefined): t is T => { return t !== null && t !== undefined; };