首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按枚举键入的对象键-不能分配给类型'string | number | symbol‘

按枚举键入的对象键-不能分配给类型'string | number | symbol‘
EN

Stack Overflow用户
提问于 2020-10-20 19:43:19
回答 1查看 265关注 0票数 1

看起来我的类型正在按预期工作。那么可以请谁帮我解释一下我在它的定义中得到的错误以及如何修复它吗?我找不到解决办法。

代码语言:javascript
复制
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'
  }
];

错误:

代码语言:javascript
复制
Type 'T' is not assignable to type 'string | number | symbol'.
  Type 'T' is not assignable to type 'symbol'.

Link to TypeScript playground.

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 19:54:03

代码语言:javascript
复制
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'
    }
];

已更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64444437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档