当前位置: 首页 > 知识库问答 >
问题:

如何在常量中使用界面

柳英豪
2023-03-14

我试图在typescript中创建一个带有子对象的对象。我正在尝试建立一个猫鼬模式,如本问题所示。

如果我将对象和子对象定义为接口,我就不能在可以设置为mongoose模式的常量中使用它们。

那么,有没有一种方法可以让我不必两次键入整个子对象,一次在接口中,一次输入常量中?

export interface Pizza {
    flavor: String;
    size: String;    
}

export interface Menu {
    pizza: Pizza
}

// Doesn't work
export const Menu = {
    store: String,
    menu: Menu  
}

// Works
export const Menu = {
    store: String,
    menu: {
        pizza: {
            flavor: String,
            size: String
        }
    }  
}

// What I really want
export const Menu = new mongoose.Schema({
    store: String,
    menu: Menu
});

// What I'm doing right now
export const Menu =  new mongoose.Schema({
    store: String,
    menu: {
        pizza: {
            flavor: String,
            size: String
        }
    }  
});

共有1个答案

劳和歌
2023-03-14

我没有和猫鼬一起工作过,但从我所看到的,构建了一个<code>猫鼬。Schema需要真实的对象,您试图传递的是typescript接口,这些接口只存在于编译之前,之后生成的javascript不包含它们。

也许这就是你要找的:

export class Pizza {
    flavor: String;
    size: String;    
}

export class Menu {
    pizza: Pizza
}

export const Menu = new mongoose.Schema({
    store: String,
    menu: Menu
});

我只是将您的接口转换为编译后的javascript中存在的类。

 类似资料:
  • 问题内容: 我想使用常量作为注释值。 常量和可以在批注中使用,但不能在数组中使用,因为在此位置它必须是数组初始化器。注释值仅限于可以内联到类的字节码中的值。这对于数组常量是不可能的,因为必须在加载时构造它。有解决此问题的方法吗? 问题答案: 不,没有解决方法。

  • 问题内容: 我不了解分隔符的工作原理,有人可以用外行人的方式解释吗? 问题答案: 扫描仪还可以使用空格以外的定界符。 来自Scanner API的简单示例: 关键是要了解内的正则表达式。在此处找到教程。 要从正则表达式开始,你可以在这里找到一个不错的教程。 笔记

  • 问题内容: 我试过了: fmt.Printf(“%d”,math.MaxUint64) 但我收到以下错误消息: 常数18446744073709551615溢出int 我怎样才能解决这个问题?谢谢! 问题答案: 是一个常量,而不是int64。请尝试: 这里的问题是常量是无类型的。该常数将根据使用它的上下文采用一种类型。在这种情况下,它被用作接口{},因此编译器无法知道您要使用哪种具体类型。对于整数

  • 问题内容: 我们总是写: 题: 是在类中声明 常量 的唯一方法吗? 如果我改写的话,它还是一个 常量 还是一个 实例字段 ? 什么是 实例变量 ? 实例变量 和 实例字段有 什么区别? 问题答案: 您可以在Java 5及更高版本中使用一种类型,以达到您描述的目的。这是类型安全的。 A是一个实例变量。(如果它具有static修饰符,则它将成为一个静态变量。)常量仅表示该值不变。 实例变量是属于对象而

  • 问题内容: 有没有办法在Python中声明常量?在Java中,我们可以按以下方式创建常量值: Python中上述Java常量声明的等效项是什么? 问题答案: 不,那里没有。你无法在Python中将变量或值声明为常量。只是不要更改它。 如果你正在上课,则等价于: 如果不是,那只是 但是你可能想看看Alex Martelli 编写的Python代码片段中的Constants。 从Python 3.8开

  • 问题内容: 我听说我们可以在CSS中声明/定义变量,并将其像全局变量一样使用: 所以有人知道如何使用它们吗? 问题答案: 为此,您需要使用CSS动态语言的 Less 或 Sass。