在学习 typescript 编写node 接口的时候看见一段代码很疑惑。大佬们解答一下呗。

图片描述

这是微软官方 的代码https://github.com/Microsoft/...
在学习的过程中看到这段位运算符(&)的代码表示看不懂,能给我解答下这段代码的意义么?
谢谢了。
type UserModel 这是定义的什么类型?
还有就是 mongoose.Document & {} 返回 0 或者 1 ? 但是 一个 {}&{} 的情况下返回的都是0吧?
菜鸟不是很懂。

阅读 2.7k
1 个回答

typescript中在两个类型间使用&操作符表示交叉类型,而不是js的&位运算

交叉类型可以简单理解为同时拥有多个类型所有成员的类型

比如图中的代码,UserModel这个类型就是既拥有mongoose.Document的所有成员,也拥有后面{}中定义的所有成员的类型

官方文档见这里

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题