我正在尝试确定是否可以在Mongo中键入嵌套属性查询。
例如,如果我具有以下类型:
class User {
username: string
_id: string
emails: {
primary: {
address: string,
verified: boolean
}
}
}
我输入的内容适用于单一属性访问,例如,由于“ usernametypo”不是User的属性,因此将标记以下查询:
const someUser = usersCollection.findOne({usernametypo: "foobar"})
通过主电子邮件地址查找用户的正确Mongo查询如下所示:
const someUser = usersCollection.findOne({"emails.primary.address": "foo@bar.com"})
这就是问题所在。如何为该查询定义类型?鉴于User类的结构,如何告诉TS“ emails.primary.address”确实有效?
编辑:似乎有一些建议的打字稿功能可能对https://github.com/Microsoft/TypeScript/issues/12754
有帮助答案 0 :(得分:1)
您无法在TypeScript中描述此类型。 TypeScript没有字符串串联或类似的字符串。
Mongo是一件大事,如果可能的话,维护@types/mongo
的人早就做到了。