简体   繁体   English

按枚举键入的对象键 - 不可分配给类型 'string | 数量 | 象征'

[英]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.

相关问题 输入'字符串| 编号 | symbol' 不可分配给类型 'string' - Type 'string | number | symbol' is not assignable to type 'string' 类型“接口”不可分配给类型“字符串 | 编号 | 象征' - Type 'Interface' is not assignable to type 'string | number | symbol' Typescript - 类型“未定义”不可分配给类型“字符串 | 号码 | 象征' - Typescript - Type 'undefined' is not assignable to type 'string | number | symbol' 枚举/类型/字符串作为 object 类型/接口中的键 - Enum/Type/string as keys in object Type/interface 类型 &#39;T&#39; 不满足约束 &#39;string | 数量 | 象征&#39;。 类型“T”不可分配给类型“符号” - Type 'T' does not satisfy the constraint 'string | number | symbol'. Type 'T' is not assignable to type 'symbol' TypeScript 枚举键 - 字符串不可分配给类型 Enum - TypeScript enum key - string is not assignable to type Enum Typescript 字符串枚举类型 'string' 不可分配给类型 - Typescript String enum type 'string' is not assignable to type 类型&#39;字符&#39;不能指定为&#39;数字&#39;类型 - Type 'string' is not assignable to type 'number' 类型“数字”不可分配给类型“[string | 数字,字符串]' - Type 'number' is not assignable to type '[string | number, string]' TypeScript:`'keyof R'` 不可分配给类型'string',因为它可以是'string | 编号 | 象征' - TypeScript: `'keyof R'` is not assignable to type 'string' because it can be either 'string | number | symbol'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM