문자열 입력을 받아 문자열을 문자로 분할 한 다음 해당 문자를 객체의 키에 일치시키는 바닐라 자바 스크립트 코드가 있습니다.
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
이것은 예상대로 작동합니다. 이제 이것을 typescript로 변환하고 싶습니다.
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
하지만 다음과 같은 오류가 발생합니다.
'문자열'유형의 표현식은 '{ "A"유형을 색인화하는 데 사용할 수 없기 때문에 요소가 암시 적으로'모든 '유형을 갖습니다. 문자열; } '. 유형> '{ "A": string에서'string '유형의 매개 변수를 가진 색인 서명이 없습니다. } '. ts (7053)
문제는 객체 키가 문자열이어야한다는 점이라고 생각했습니다. 그러나 그것들을 문자열로 변환하는 것은 작동하지 않았습니다.
DNATranscriber = {
"G":"C",
"C": "G",
"T": "A",
"A": "U"
}
나는 이것에 대해 꽤 혼란 스럽습니다. 내 개체에 문자열 유형의 인덱스 서명이 없다고 말합니다. 그러나 나는 그것을 확신합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
편집-DNATranscriber 객체에 어떤 유형이든 제공하여이 문제를 해결했습니다.
DNATranscriber: any = {
"G":"C",
"C":"G",
"T":"A",
"A":"U"
}
toRna