用泛型包装 'K in keyof T'
Wrap 'K in keyof T' with a generic type
type CustomFieldWrapper<T> = {
isDirty: boolean
value: T
}
type WrappedFormValues<T>> = {
CustomFieldWrapper< [K in keyof T]: T[K] >
};
我想确保所有 [K in keyof T]: T[K] 也用我的 CustomFieldWrapper 包装
那我希望能够
var myfield: WrappedFormValues<{ name: string, email: string}> = {
name: GetCustomFieldWrapper("name", "initial name value"),
email: GetCustomFieldWrapper("email", "initial email value"),
}
现在显然我不能使用那个语法。 CustomFieldWrapper 不起作用。
:T[K]
是结果对象中字段的类型注释。你可以把你的包装类型放在那里:
type WrappedFormValues<T> = {
[K in keyof T]: CustomFieldWrapper<T[K] >
};
type CustomFieldWrapper<T> = {
isDirty: boolean
value: T
}
type WrappedFormValues<T>> = {
CustomFieldWrapper< [K in keyof T]: T[K] >
};
我想确保所有 [K in keyof T]: T[K] 也用我的 CustomFieldWrapper 包装
那我希望能够
var myfield: WrappedFormValues<{ name: string, email: string}> = {
name: GetCustomFieldWrapper("name", "initial name value"),
email: GetCustomFieldWrapper("email", "initial email value"),
}
现在显然我不能使用那个语法。 CustomFieldWrapper
:T[K]
是结果对象中字段的类型注释。你可以把你的包装类型放在那里:
type WrappedFormValues<T> = {
[K in keyof T]: CustomFieldWrapper<T[K] >
};