以下代码:
type Schema<T> = {
[key in Extract<keyof T, string>]?: any;
};
function logoutValues<T>(schema: Schema<T>) {
Object.keys(schema).forEach(key => {
const value = schema[key];
console.log(value);
});
}
正在生成类型错误:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Schema<T>'.
No index signature with a parameter of type 'string' was found on type 'Schema<T>'.
因为我正在尝试通过schema
类型的索引key
访问string
中的值。
我发现了类似的问题,但没有真正答案。 {p}不会告诉编译器我只有Extract<keyof T, string>
类型的键,而没有string
/ number
类型的键吗?