获取类型的属性

Get properties of a type

我找不到在运行时查找某个类型是否存在某个 属性 的方法。像这样(伪代码)

import { MyType } from '@prisma/client';

MyType.hasProperty("foo") // true/false

MyType.allProperties() // ["foo", "bar", "stuff"]

有谁知道好的解决办法吗?提前致谢!

类型在运行时不存在。但是您仍然可以检查运行时存在的对象。您可以使用 in 运算符来检查对象是否包含特定的 属性,并且您可以使用 Object.keys(someObj) 将对象上的所有键作为数组获取。

const foo = { a: 123, b: 'bar' }
'a' in foo // true
Object.keys(foo) // ['a', 'b']

不能做的是从类型或接口获取此信息。它必须是运行时存在的真实对象。