У мене є ванільний код javascript, який приймає рядок, розбиває рядок на символи, а потім узгоджує ці символи з ключем на об’єкті.
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
Це працює, як очікувалося. Зараз я хотів би перетворити це на машинопис.
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
Але я отримую таку помилку.
Елемент неявно має тип "будь-який", оскільки вираз типу "рядок"> не може використовуватися для індексації типу "{" А ": рядок; } '. Не знайдено підпису індексу з параметром типу 'string' у type> '{"A": string; } '. ts (7053)
Я думав, що проблема полягає в тому, що мені потрібен мій ключ об’єкта, щоб бути рядком. Але перетворити їх на рядки не вдалося.
DNATranscriber = {
"G":"C",
"C": "G",
"T": "A",
"A": "U"
}
Мене це дуже бентежить. Там сказано, що на моєму об’єкті не існує підпису індексу із типом рядка. Але я впевнений, що це так. Що я роблю не так?
Редагувати - Я вирішив це, надавши об’єкту DNATranscriber тип будь-якого.
DNATranscriber: any = {
"G":"C",
"C":"G",
"T":"A",
"A":"U"
}
toRna