首页 > 解决方案 > 从这里推断出的“数字”在哪里?

问题描述

我得到一个编译错误:

Element implicitly has an 'any' type because expression of type 'number' can't be used to index type '{ G: string; C: string; T: string; A: string; }'.
  No index signature with a parameter of type 'number' was found on type '{ G: string; C: string; T: string; A: string; }'.(7053)

Transcriptor.DNA_TO_RNA_NUCLEOTIDES[dnsNucleotide]下面的代码中:

class Transcriptor {

    static readonly DNA_TO_RNA_NUCLEOTIDES = { 'G': 'C', 'C': 'G', 'T': 'A', 'A': 'U' }

    toRna(dnaStrand: string) {
        let rnaStrand: string = ""
        const dnaAsArray: string[] = Array.from(dnaStrand)
        for (const dnsNucleotide in dnaAsArray) {
            const rnaNucleotide: string = Transcriptor.DNA_TO_RNA_NUCLEOTIDES[dnsNucleotide]
            rnaStrand += rnaNucleotide
        }
        return rnaStrand
    }
}

export default Transcriptor

我会理解如果dnsNucleotide可能发生any这种情况,但在这种情况下它是 a string,那么number从哪里推断?

我知道我可以用static readonly DNA_TO_RNA_NUCLEOTIDES: { [key: string]: string} = {...}

标签: typescript

解决方案


推荐阅读