首页 > 解决方案 > TypeScript 中基于对象的特定字符串值

问题描述

如何要求参数是 TypeScript 中的特定字符串值?

例如:

const obj = {
  a: 1,
  b: 2,
  c: 3,
};

interface Props {
  x: Object.keys(obj); // instead of 'a' | 'b' | 'c'
}

const foo = (x: Props) => console.log(x);

标签: typescript

解决方案


您可以使用typeof运算符首先获取对象的类型,obj然后使用keyof运算符获取对象的键("a" | "b" | "c")。

const obj = {
  a: 1,
  b: 2,
  c: 3
};

interface Props {
  x: keyof typeof obj;
}

const foo = (x: Props) => console.log(x);

打字稿游乐场


推荐阅读