typescript - 如何从函数参数中获取对象属性值作为类型
问题描述
这是我要实现的目标的简短示例
type Arg = {
name: string
}
function fun(arg: Arg): // what do I return ?
function fun (arg) {
return {[arg.name]: true}
}
我能做些什么吗?
解决方案
我认为您正在寻找这样的东西:
type Arg<T extends string> = {
name: T
}
function fun<Name extends string, T extends Arg<Name>>(arg: T): Record<T['name'], boolean>
function fun<Name extends string, T extends Arg<Name>>(arg: T) {
return { [arg.name]: true }
}
const result = fun({ name: 'John' }) // Record<"John", boolean>
有关推断函数参数的更多信息,您可以在我的文章中找到
推荐阅读
- kubernetes - GKE - Metrics-Server - HTTP 探测失败,状态码:500
- sql - 寻找销量最高的手机型号和制造商
- r - 在 R 中将 3 维数组合并为 2 维数组
- python - 在 Django 中使用 HTML 调用带有参数的 Python 函数
- java - 在 junit mockito 中使用 Optional.of 时出现未找到错误
- python - 他们是一种在python中显示此数据集的第一个日期和最后一个日期的方法吗
- vuejs2 - Vue js,foreach循环内的异步
- string - 如何转换任何数字,例如 822042461(字符串类型)到 822042461(双类型)?
- reactjs - 使用 React 和 Gatsby 传递道具
- laravel - 使用 nuxt js 和 laravel API 的安全问题