typescript - 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);
解决方案
您可以使用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);
推荐阅读
- css - React 16.13.1 CSS 模块类不适用
- amazon-web-services - 从现有存储桶创建 SNS 消息 S3 使用 cloudformation/serverless 创建事件
- javascript - 可变道具问题
- office365api - 使用 REST Api 编辑 yammer 评论
- json - 如何使用我的 cfoutput 以结构形式返回?
- python - python key=operator.itemgetter(1)) 是如何工作的?
- python - 输入的数据用完了;中断训练
- c# - 何时在 C# 中使用枚举
- c++ - float_max + 1 在 C++ 中是如何定义的?
- python-3.x - Python:在迭代时修改元素列表