typescript 函数返回一个对象,该对象的键是输入对象的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 函数返回一个对象,该对象的键是输入对象的值相关的知识,希望对你有一定的参考价值。

/**
* Declare the type for the following fuction
* e.g. const mappingFunc = obj => ({[obj.name]: true})
**/

const mappingFunc = <T extends string>(arg: {name: T}): Record<T, boolean> => ({
  [arg.name]: true
})

const obj = {
  name: 'foo' as 'foo' // <-- narrow down the type from `string` to `"foo"` (String Literal Type)
}

const output = mappingFunc<typeof obj.name>(obj);
console.log(output.foo) // true
console.log(output.bar) // error:  TS2339: Property 'bar' does not exist on type 'Record<"foo", boolean>'.

以上是关于typescript 函数返回一个对象,该对象的键是输入对象的值的主要内容,如果未能解决你的问题,请参考以下文章

如何为具有不同数量的键/值对的对象添加类型? [关闭]

在 TypeScript 中使用对象的键属性

Typescript:环境变量的类型 Guard 作为 JSON 对象的键

如何从 Typescript 中的固定对象的键创建映射类型

使用 TypeScript 函数返回 JSON 对象

Typescript - 如果我想返回对象,函数返回类型