Tengo un código JavaScript de vanilla que toma una entrada de cadena, divide la cadena en caracteres y luego hace coincidir esos caracteres con una clave en un objeto.
DNATranscriber = {
"G":"C",
"C": "G",
"T": "A",
"A": "U"
}
function toRna(sequence){
const sequenceArray = [...sequence];
const transcriptionArray = sequenceArray.map(character =>{
return this.DNATranscriber[character];
});
return transcriptionArray.join("");
}
console.log(toRna("ACGTGGTCTTAA")); //Returns UGCACCAGAAUU
Esto funciona como se esperaba. Ahora me gustaría convertir esto a mecanografiado.
class Transcriptor {
DNATranscriber = {
G:"C",
C: "G",
T: "A",
A: "U"
}
toRna(sequence: string) {
const sequenceArray = [...sequence];
const transcriptionArray = sequenceArray.map(character =>{
return this.DNATranscriber[character];
});
}
}
export default Transcriptor
Pero recibo el siguiente error.
El elemento tiene implícitamente un tipo 'cualquier' porque la expresión del tipo 'cadena'> no se puede usar para indexar el tipo '{"A": cadena; } '. No se encontró ninguna firma de índice con un parámetro de tipo 'cadena' en el tipo> '{"A": cadena; } '. ts (7053)
Pensé que el problema era que necesitaba que mi clave de objeto fuera una cadena. Pero convertirlos en cadenas no funcionó.
DNATranscriber = {
"G":"C",
"C": "G",
"T": "A",
"A": "U"
}
Estoy bastante confundido por esto. Dice que no existe una firma de índice con un tipo de cadena en mi objeto. Pero estoy seguro de que sí. ¿Qué estoy haciendo mal?
Editar: resolví esto dando al objeto DNATranscriber un tipo de any.
DNATranscriber: any = {
"G":"C",
"C":"G",
"T":"A",
"A":"U"
}
toRna