![](/img/trans.png)
[英]How can I build a Typescript string literal type with an imported array?
[英]How can I convert a string property to a custom type within a TypeScript array?
我有一个扩展 MongoDB 文档的接口,以及一些扩展该接口的示例数据。 界面是这样的:
export default interface IModel extends Document {
_id: ObjectId;
name: string;
data:string;
}
示例数据匹配此接口。 object ID类型看起来像一串数字和字母。 但是,当我在 _id 字段中为示例数据定义一个值时,它会抛出错误,因为 TypeScript 将其键入为字符串并且类型应为 ObjectId。 那么如何将 id 的值转换为 ObjectId 类型呢?
我正在尝试做这样的事情:
export const ModelSampleData: IModel = {
"_id": toObjectId(240nfkfn38943),
"name": "model",
"data": "modelstuffetc"
}
感谢任何帮助!
根据此链接,您可以像这样将字符串类型转换为objectId
:
export const ModelSampleData: IModel = {
"_id": ObjectId("240nfkfn38943"),
"name": "model",
"data": "modelstuffetc"
}
您需要做的就是删除“”,您尝试复制响应并将其分配给 ModelSampleData,它是 json object,而不是 javascript object,如果要使用,则使用 JSON.parse 下面两个示例都应该有效
import { ObjectId } from 'mongodb';
export default interface IModel extends Document{
_id: ObjectId ;
name: string;
data:string;
}
export const ModelSampleData1: IModel = JSON.parse(`{
"_id": ObjectId(240nfkfn38943),
"name": "model",
"data": "modelstuffetc"
}`);
或者
export const ModelSampleData: IModel = <IModel> {
_id: new ObjectId("240nfkfn38943"),
name: "model",
data: "modelstuffetc"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.