[英]Typed object keys by enum - not assignable to type 'string | number | symbol'
It seems that my type is working as expected.看来我的类型正在按预期工作。 Then can please someone help me to explain the error I get in its definition and how to fix it?
然后请有人帮我解释我在其定义中遇到的错误以及如何解决它? I can not find a solution.
我找不到解决方案。
export enum Languages {
Cs = 'cs',
Sk = 'sk',
En = 'en'
}
export type RouteDefinitionItem<T> = {
name: string;
pathname: { [index in T]: string };
page: string;
};
const routes: RouteDefinitionItem<Languages>[] = [
{
name: 'home',
pathname: {
cs: '/',
en: '/en',
sk: '/sk'
},
page: '/home'
}
];
error:错误:
Type 'T' is not assignable to type 'string | number | symbol'.
Type 'T' is not assignable to type 'symbol'.
Link to TypeScript playground. 链接到 TypeScript 游乐场。
Thank you in advance.先感谢您。
export enum Languages {
Cs = 'cs',
Sk = 'sk',
En = 'en'
}
export type RouteDefinitionItem<T extends keyof any > = {
name: string;
pathname: Record<T,string>;
page: string;
};
const routes: RouteDefinitionItem<Languages>[] = [
{
name: 'home',
pathname: {
'cs':'',
'en':'',
'sk':''
},
page: '/home'
}
];
UPDATED.更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.