import { Extends } from '../../commonness/Extends'; import { If } from '../../commonness/If'; type RecursiveGetType = K extends `${infer First}.${infer Rest}` ? First extends keyof T ? If, T[First], RecursiveGetType> : never : K extends keyof T ? T[K] : never; /** * * Get a value from an object using a string path * * 문자열 경로를 사용하여 객체에서 값을 가져오는 타입 * * @param T Object to get value from / 값을 가져올 객체 * * @param K String path to get value from / 값을 가져올 문자열 경로 * * @returns Value at path / 경로에 있는 값 * * @example * type cases = [ * Expect, 1>>, * Expect, 2>>, * Expect, never>>, * ] * * @link https://www.utilscript.site/docs/usage-object/get * */ export type Get = K extends keyof T ? T[K] : RecursiveGetType; export {};