max*_*992 5 typescript typescript-typings
由于模板文字登陆 Typescript ( PR ),我们可以在我们的类型中访问以下函数:
请参阅文档了解更多信息。
知道这一点后,我怀疑我想要实现的目标是不可能的,但要询问以防万一我错过了一些东西。
我有一个界面,它有一定数量的属性......加上一些可以发展的属性。我需要能够提取出可以进化的类型。问题是它们带有增量数字(从 1 到 3)。举个例子会更好理解:
interface A {
propA: string; // not interested in that
propB: string; // not interested in that
propC: string; // not interested in that
propD1: string;
propD2: string;
propD3: string;
propE1: string;
propE2: string;
propE3: string;
propF1: string;
propF2: string;
propF3: string;
}
Run Code Online (Sandbox Code Playgroud)
不知道如何实现它或者是否可能......但我想要一个像这样的类型:
MagicType<A>应该返回'propD' | 'propE' | 'propF'.
基本上,它应该能够看到那些以1, 2,3结尾的存在。
很确定我在这里要求太多,但谁知道呢:)。
虽然这对于现有的模板文字函数( Uppercase、、、、)来说似乎不可行,但我也想知道当前是否可以创建自定义内在类型?LowercaseCapitalizeUncapitalize
感谢您的任何想法,甚至只是确认这是根本不可行的
kay*_*ya3 10
“内在”意味着内置于编译器中,因此严格的答案是您需要分叉编译器。
当然,真正的答案是你不需要你的类型是内在的:
type EasyAs123<K extends string> = K extends `${infer U}${1 | 2 | 3}` ? U : never
// type Test = "propD" | "propE" | "propF"
type Test = EasyAs123<keyof A>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
992 次 |
| 最近记录: |