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

311
Vistas
no existe en el tipo 'string'.ts(2339)

Soy nuevo en mecanografiar, aquí he estado agregando ts a mi proyecto de reacción, recibo este tipo de error: la propiedad 'identificador' no existe en el tipo 'cadena'.ts (2339), el código funciona como está pero cuando se agrega ts da ese error, puedo resolverlo así: currentBroker: "" as any, pero esa no es la forma correcta. alguna ayuda/sugerencia?

mi código:

 const initialSelectionState = { currentBroker: "", }; export function selectionReducer( state = initialSelectionState, action: selectionReducerAction ) { switch (action.type) { case ActionType.CHANGE_SITE: return { ...state, currentSite: action.payload, }; case ActionType.CHANGE_CAMERA: return { ...state, currentCamera: action.payload, }; case ActionType.CHANGE_ANALYSER: return { ...state, currentAnalyser: action.payload, }; case ActionType.CHANGE_PLATFORM: return { ...state, currentPlatform: action.payload, }; case ActionType.CHANGE_BROKER: return { ...state, currentBroker: action.payload, }; case ActionType.CLEAR_ANALYSER_DATA: return { ...state, currentAnalyser: "", }; case ActionType.CLEAR_CAMERA_DATA: return { ...state, currentCamera: "", }; case ActionType.CLEAR_PLATFORM_DATA: return { ...state, currentPlatform: "", }; case ActionType.CLEAR_BROKER_DATA: return { ...state, currentBroker: "", }; case ActionType.UPDATE_BROKER: const ucurrentBroker = state.currentBroker.identifier == action.payload.identifier ? action.payload : state.currentBroker; return { ...state, currentBroker: ucurrentBroker }; } }

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

currentBroker es de tipo cadena, no es un objeto, y mecanografiado le dice que no puede acceder a las propiedades porque no las tiene.

Si está utilizando mecanografiado, le sugiero que primero declare la interfaz de su estado:

 interface IState { currentBroker: string; } const initialSelectionState: IState = { currentBroker: "", };

y si necesita que su corredor tenga una propiedad de identifier , puede modificar la interfaz de estado según lo necesite:

 interface IState { currentBroker: { identifier: string; } } const initialSelectionState: IState = { currentBroker: { identifier: "" }; };

Con esto no debería volver a tener el error (si entendí bien)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Inicializas el "currentBroker" como una cadena.

 const initialSelectionState = { currentBroker: "", };

Luego, más tarde intente acceder a currentBroker como si fuera un objeto con un identifier de propiedad

 state.currentBroker.identifier == action.payload.identifier

La conversión a cualquiera permitirá que se ejecute el código, y lo más probable es que solo devuelva undefined al intentar obtener esa propiedad.

Si todo lo que está tratando de hacer es actualizar una cadena en un objeto de estado, seguramente no se requiere lógica.

 const initialSelectionState = { currentBroker: "", }; export function selectionReducer( state = initialSelectionState, action: selectionReducerAction ) { switch (action.type) { case ActionType.UPDATE_BROKER: return { ...state, currentBroker: action.payload}; } }

Como mencionó, la estructura de la carga útil es la siguiente;

 { identifier: 'b9b6381e-2d42-4953-b747-4b25fd382a04', name: 'Broker 244', host: 'localhost', port: 1783, site_id: '0-0-0-0' }

Entonces su currentBroker debería coincidir de alguna manera con la estructura de this. Alternativamente, si no hay 'ningún corredor actual inicialmente', debe hacerlo undefined . En cualquier caso, definitivamente no debería ser una cadena vacía, es decir, "" , ya que es un tipo de datos totalmente diferente.

about 4 years ago · Juan Pablo Isaza 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