繁体   English   中英

如何将字符串属性转换为 TypeScript 数组中的自定义类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM