将string转换为ObjectId时,我使用
string
ObjectId
import * as mongoose from 'mongoose'; const objId = mongoose.Types.ObjectId(strId);
在TypeScript 1.x中运行良好,更新到TypeScript 2.x后出现错误:错误TS2348:类型“typeof ObjectID”的值不可调用。是否要包含“new”?我该怎么解决呢?谢谢
bkhjykvo1#
mongoose文档显示你可以示例化ObjectId而不需要new关键字,但是typescript定义(至少我见过的,比如DefinitelyTyped上的)没有,所以如果你想避免typescript编译错误,你需要使用new关键字:
new
const objId = new mongoose.Types.ObjectId(strId);
您还应该能够执行以下操作:
type ObjectIdConstructor = { (str: string): mongoose.Types.ObjectId; new (str: string): mongoose.Types.ObjectId; } const objId = (mongoose.Types.ObjectId as ObjectIdConstructor)(strId);
1条答案
按热度按时间bkhjykvo1#
mongoose文档显示你可以示例化
ObjectId
而不需要new
关键字,但是typescript定义(至少我见过的,比如DefinitelyTyped上的)没有,所以如果你想避免typescript编译错误,你需要使用new
关键字:您还应该能够执行以下操作: