import { Checking, type Test } from "hry-types"; import type { IfExtends } from "hry-types/src/Any/IfExtends"; import type { ComponentDoc } from "../api/DefineComponent/ReturnType/ComponentDoc"; /** * 提取文档前缀名 * @param TComponentDoc - ComponentDoc */ export type ExtractDocPrefix = keyof IfExtends< unknown, TComponentDoc["properties"], TComponentDoc["customEvents"], TComponentDoc["properties"] > extends `${infer P}_${string}` ? P : ""; type Test1 = ExtractDocPrefix<{ properties: { xxx_name: string } }>; type Test1Expect = "xxx"; Checking; type Test2 = ExtractDocPrefix<{ customEvents: { xxx_name: string } }>; type Test2Expect = "xxx"; Checking; // type lll = never extends `${infer P}_${string}` ? P: ""; // => string bug? type Test3 = ExtractDocPrefix<{}>; type Test3Expect = string; Checking;