获得徽章 9
- typescript小知识:
keyof 获取一个类型中的所有可访问的key值
Extract<T,B> 获取 T 类型中指定的 B 的key 的新类型
A extends B A类型是B类型的子类型
never 表示不存在的类型 比如 string & number => never
由此可得: 我们想从一个类中获取这个类型指定value的类型集合就有如下操作
type PickTypeIs<T, Type> = keyof {
[P in keyof T as Extract<P, T[P] extends Type ? P : never>]: T[P]
};
// 一个function的key值集合
interface User {
name:string
age:number
getName():string
getAge():number
}
type fnKeys = PickTypeIs<User ,Function> ==> "getName"|"getAge"
type stringKeys = PickTypeIs<User ,string> ==> "name"展开
赞过评论1 - qklhk-chocolate start
unhandledRejection Error: expected "{".
╷
1 │ 404: Not Found
│ ^
╵
stdin 1:15 root stylesheet
at Object.wrapException (/home/runner/work/juejin-markdown-themes/juejin-markdown-themes/node_modules/sass/sass.dart.js:1250:17)
at SpanScanner.error$3$length$position (/home/runner/work/juejin-markdown-themes/juejin-markdown-themes/node_modules/sass/sass.dart.js:68140:15)
at SpanScanner.expectChar$2$name (/home/runner/work/juejin-markdown-themes/juejin-markdown-themes/node_modules/sass/sass.dart.js:68222:12)
at SpanScanner.expectChar$1 (/home/runner/work/juejin-markdown-themes/juejin-markdown-themes/node_modules/sass/sass.dart.js:68225:19)
at ScssParser0.children$1 (/home/runner/work/juejin-markdown-themes/juejin-markdown-themes/node_modules/sass/sass.dart.js:91610:10)
你的这个主题可以修改一下错误吗? qklhk-chocolate start展开评论点赞
![[打脸]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_82.c6f2aee.png)