typescript - 使用可选键选择
问题描述
在 TypeScript 中,是否有可能有一个Pick
-style实用程序类型,其中可以指定在所选对象类型上可能可用或不可用的键?例如:
interface Alpha
{
a: boolean;
b: boolean;
}
type Picked = OptionalPick<Alpha, 'a' | 'c'>; // { a: boolean }
解决方案
是的,有可能,我们可以将第二个参数定义K
为扩展PropertyKey
,然后用于从union 中的任何属性中Extarct
提取:keyof T
K
interface Alpha
{
a: boolean;
b: boolean;
}
type OptionalPick<T, K extends PropertyKey> = Pick<T, Extract<keyof T, K>>
type Picked = OptionalPick<Alpha, 'a' | 'c'>;
推荐阅读
- spring-kafka - 在 Spring Kafka 中为非阻塞重试配置单个自定义重试主题
- terraform - terraform 中状态文件的锁定如何工作?
- r - 取消嵌套列并填充数据 - 找不到未嵌套的列
- sql - rails 清理子查询
- ios - UITextContentTypeOneTimeCode 导致“textFieldViewDidChange”多次调用
- python - 如果匹配,则基于其他数据框进行过滤
- angular - 使用 RxJS 将一种对象类型转换为另一种对象类型
- python - PyObject_CallObject 在尝试传递数组时返回 NULL
- ios - 使用 Xamarin Plugin.BLE 时如何清除 iOS 中的服务缓存
- linux - 如何从 REST API 在 SourceForge 上创建目录?