Ich habe einen Vanille-Javascript-Code, der eine Zeichenfolgeneingabe übernimmt, die Zeichenfolge in Zeichen aufteilt und diese Zeichen dann einem Schlüssel auf einem Objekt zuordnet.
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
Dies funktioniert wie erwartet. Ich möchte dies jetzt in Typoskript konvertieren.
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
Aber ich erhalte den folgenden Fehler.
Das Element hat implizit den Typ 'any', da der Ausdruck vom Typ 'string'> nicht zum Indizieren des Typs '{"A" verwendet werden kann: string; } '. Für Typ> '{"A": string wurde keine Indexsignatur mit einem Parameter vom Typ' string 'gefunden. } '. ts (7053)
Ich dachte, das Problem sei, dass ich meinen Objektschlüssel als Zeichenfolge benötige. Aber das Konvertieren in Strings hat nicht funktioniert.
DNATranscriber = {
"G":"C",
"C": "G",
"T": "A",
"A": "U"
}
Das verwirrt mich ziemlich. Es heißt, dass für mein Objekt keine Indexsignatur mit einem Zeichenfolgentyp vorhanden ist. Aber ich bin mir sicher, dass es so ist. Was mache ich falsch?
Bearbeiten - Ich habe dieses Problem gelöst, indem ich dem DNATranscriber-Objekt einen beliebigen Typ gegeben habe.
DNATranscriber: any = {
"G":"C",
"C":"G",
"T":"A",
"A":"U"
}
toRna