An index signature parameter type cannot be a literal type or generic type. Consider using a mapped

编程知识 更新时间:2023-05-02 05:34:09

An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead

写接口类型时,希望有两个类型的键值是联合类型动态需要也需要约束起来,比如:
interface ResDataType<T extends string> { // T需要增加 extends string 避免传入其他类型
	titleType: T;
	// titleData: { [key: T]: string }; // 这时候key会报出错误
	titleData: { [key in T]: string }; // 正确写法,必须在T上增加继承 string
}
const res: ResDataType<'edit' | 'new'> = {
	titleType: 'new', // edit | new
    titleData: {
      edit: '编辑',
      new: '添加',
    },
}
console.log(res.titleData[res.titleType]);

希望能帮到大家,我也是参考

更多推荐

An index signature parameter type cannot be a literal type or generic type. Cons

本文发布于:2023-04-26 07:15:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/66790d00504d768fd27b59e1895adc78.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:parameter   signature   index   type   mapped

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 104667文章数
  • 26217阅读数
  • 0评论数