首页 > 解决方案 > 使用打字稿将对象键限制为仅字符串类型

问题描述

我想创建一个名为的函数,该函数接受类型为func的参数。argRecord<string, unknown>

const func = <Arg extends Record<string, unknown>>(arg: Arg) => {
  return arg
}

只应允许字符串类型的键:

func({
  'a': 'foo',           // correct
  b: 'foo',             // correct
  ['2']: 'foo',         // correct
  [1]: 'foo',           // incorrect
  5: 'foo',             // incorrect
  [Symbol()]: 'foo'     // incorrect
})

如何编辑func以限制任何非字符串键arg

这是一个打字稿沙箱

标签: typescriptobjectgenerics

解决方案


推荐阅读