Hon*_*iao 1 mongoose typescript typescript2.0 angular
当我将 a 转换为string
时ObjectId
,我使用
import * as mongoose from 'mongoose';
const objId = mongoose.Types.ObjectId(strId);
Run Code Online (Sandbox Code Playgroud)
它在TypeScript 1.x 中运行良好,更新到TypeScript 2.x 后,出现错误:
错误 TS2348:“typeof ObjectID”类型的值不可调用。您的意思是包含“新”吗?
我该如何解决?谢谢
猫鼬文档表明您可以在ObjectId
没有new
关键字的情况下进行实例化,但是打字稿定义(至少是我见过的那些,比如绝对类型上的那个)没有那个,所以如果你想避免打字稿编译错误,你会需要使用new
关键字:
const objId = new mongoose.Types.ObjectId(strId);
Run Code Online (Sandbox Code Playgroud)
您还应该能够执行以下操作:
type ObjectIdConstructor = {
(str: string): mongoose.Types.ObjectId;
new (str: string): mongoose.Types.ObjectId;
}
const objId = (mongoose.Types.ObjectId as ObjectIdConstructor)(strId);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14010 次 |
最近记录: |