需求 interface User { parent: { name: string; }; age: number; name: string; } type Column = { key: keyof User; }; const columns: Column[] = [ { key: 'name' }, { key: 'name1' }, { key:'parent.name' } ]; 解决办法 type Paths<T> = T extends object ? { [K in keyof T]: `${Exclude<K, symbol>}${"" | `.${Paths<T[K]>}`}` }[keyof T] : never type Column = { key: Paths<User>; }; 除了自己写Paths类型外,还可以使用现成的库,比如type-fest中的Path类型。
Jul 22, 2025
本文介绍关于第三方包中全局类型定义不work问题,包括使用场景、实现细节等,以提高关于第三方包中全局类型定义不work问题的效率。
Apr 5, 2022
本文介绍关于前端项目中增加全局常量设置,包括使用场景、实现细节等,以提高关于前端项目中增加全局常量设置的效率。
Jan 25, 2022
本文介绍关于给开源项目贡献TS类型声明,包括使用场景、实现细节等,以提高关于给开源项目贡献TS类型声明的效率。
Sep 12, 2021
本文是作者对TypeScript中一些特殊类型的介绍,包括TypeScript中一些特殊类型的优势、实现细节、相关资料等,这些步骤可以帮助作者提高TypeScript中一些特殊类型的效率。
Sep 5, 2021
本文是作者对TypeScript下拓展AxiosRequestConfig类型定义的介绍,包括TypeScript下拓展AxiosRequestConfig类型定义的优势、实现细节、相关资料等,这些步骤可以帮助作者提高TypeScript下拓展AxiosRequestConfig类型定义的效率。
Jan 11, 2021
本文是作者对TypeScript的Enum与ES6的Symbol的介绍,包括TypeScript的Enum与ES6的Symbol的优势、实现细节、相关资料等,这些步骤可以帮助作者提高TypeScript的Enum与ES6的Symbol的效率。
Dec 2, 2020
本文介绍关于TypeScript的认识,包括使用场景、实现细节等,以提高关于TypeScript的认识的效率。
Nov 10, 2020
本文是作者对TypeScript升级到v4的介绍,包括TypeScript升级到v4的优势、实现细节、相关资料等,这些步骤可以帮助作者提高TypeScript升级到v4的效率。
Oct 21, 2020
本文是作者对TypeScript装饰器实践的介绍,包括TypeScript装饰器实践的优势、实现细节、相关资料等,这些步骤可以帮助作者提高TypeScript装饰器实践的效率。
May 16, 2020