我有一些普通的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
这与预期的一样。我现在想把它转换成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
但是我得到了下面的错误。
元素隐式具有'any‘类型,因为'string’>类型的表达式不能用于索引类型'{ "A":string;}‘。在类型>'{ "A":string;}‘.ts上未找到参数类型为'string’的索引签名(7053)
我认为问题是我需要我的对象键是一个字符串。但将它们转换为字符串并不起作用。
DNATranscriber = {
"G":"C",
"C": "G",
"T": "A",
"A": "U"
}
我对此感到非常困惑。它说明我的对象上不存在具有字符串类型的索引签名。但我确信它确实是这样的。我做错了什么?
Edit -我通过给DNATranscriber对象一个any类型来解决这个问题。
DNATranscriber: any = {
"G":"C",
"C":"G",
"T":"A",
"A":"U"
}
https://stackoverflow.com/questions/56568423
复制相似问题