Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

315
Vistas
type any no se puede asignar a type never. (después de agregar la firma de índice a la interfaz)

hola, estoy recibiendo el siguiente error para la siguiente función:

función:

 await AutoUsersPositions.updateOne( { user: userSetup.userEmail }, { $push: { stocks: { id: position._id, active: true, createdAt: Date.now()} } } )

errores:

 Type 'any' is not assignable to type 'never'. Type 'boolean' is not assignable to type 'never'. Type 'number' is not assignable to type 'never'.

el primer error se asigna a la palabra "id", el segundo es "activo" y el tercero es "creado en"

mi interfaz para esta colección:

 const AutoUsersPositionSchema = new Schema({ //סכמה משתמש user: String, userID: String, stocks: Array, bonds: Array, comodity: Array, currencyPairs: Array, indexes: Array, }, { collection: "AutoUsersPositions"} ); export interface AutoUsersPositionsDocument extends Document { user?: string, userID?: string, stocks?: [id: any, active: any, createdAt: any], bonds?: [id: any, active: any, createdAt: any], comodity?: [id: any, active: any, createdAt: any], currencyPairs?: [id: any, active: any, createdAt: any], indexes?: [id: any, active: any, createdAt: any], id? : any, active?: any, createdAt: any, [key: string]: any }

Aparentemente, el problema comenzó a ocurrir después de que agregué [key:string]: any (no quiero eliminar esto). ¿Alguna idea de cómo solucionar este problema?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto se puede simplificar a:

 interface Stock { id: any active: any createdAt: any } interface Foo { stocks?: Stock[] [key: string]: any } const foo: Foo = { stocks: [{ id: 1, active: true, createdAt: Date.now() }] } console.log(foo)

Según el patio de recreo , la estructura básica funciona bien. Su definición de tipo es muy liberal y probablemente no sea de mucha ayuda, pero imagino que está trabajando para lograr definiciones de tipo más estrechas.

Sospecho que el problema radica en la implementación de la función Mongoose y cómo determina el tipo (que podría no ser ayudado por la definición liberal que le está dando).

Agregar el tipo de acceso ( [key: string]: any ) no parece hacer ninguna diferencia en la aceptabilidad del patio de recreo, y solo sirve para debilitar las definiciones de propiedad (es decir, stocks son opcionales de una forma específica, Y puede ser cualquiera) lo que bien podría estar estropeando la interpretación de tipo de Mongoose. ¿Por qué crees que necesitas esa definición de acceso?

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda