Búsqueda de sitios web

cuentas de Meteor - usando matb33:collection-hooks en TypeScript


Estoy creando una aplicación Angular2-Meteor, empezando con el tutorial Socially. Estoy intentando implementar Roles de usuario usando alanning:roles y matb33:collection-hooks. La solución sería similar a la propuesta aquí. La única diferencia sería que Angular 2 requiere definiciones de TypeScript para Roles y Collection-Hooks. He encontrado meteor-typescript-libs, que tiene una definición para Roles que parece funcionar. Sin embargo, el único recurso para collection-hooks que encontré fue typed-meteor-collection-hooks. Intenté referenciar index.d.ts copiando/pegando el archivo en mi proyecto, pero todavía obtengo el siguiente error:

server/imports/accounts.ts (30, 14): La propiedad 'after' no existe en el tipo 'Collection'.

En la siguiente línea:

Meteor.users.after.insert(function (userId, doc) {    
if (doc.profile.type === "basic") {
    Roles.addUsersToRoles(doc._id, [ROLES.Basic])
} else if (doc.profile.type === "admin") {
    Roles.addUsersToRoles(doc._id, [ROLES.Admin])
} else if (doc.profile.type === "manager") {
    Roles.addUsersToRoles(doc._id, [ROLES.Manager])
}});

Soy nuevo en TypeScript, y no me queda claro cómo debería implementar las definiciones de tipos para los paquetes de Meteor. Claramente, mi enfoque es incorrecto. ¿Alguien tiene experiencia con roles y collection-hooks en Meteor-Angular2?

ACTUALIZACIÓN: Parece que el código Meteor.users.after.insert() se está ejecutando después de insertar un usuario, a pesar del error. Estoy continuando con el desarrollo, pero agradecería una solución para eliminar el error.

Respuesta #1

¿Has intentado instalar los typings desde npm?

https://www.npmjs.com/package/@types/meteor-collection-hooks

No olvides también agregar a tu arreglo "types" en el tsconfig como:

"types": [
  "@types/meteor-collection-hooks"
]