【发布时间】:2023-01-09 20:08:56
【问题描述】:
所以我有一个函数,它将接受大写字母的字符串,并且每个单独的字母都具有字母表对象中所述的值。但是我在用打字稿写它时遇到了麻烦。这是在 javascript 中运行的代码:
export const alphabet = {
A: 1,
B: 2,
C: 3,
D: 4,
E: 5,
F: 6,
G: 7,
H: 8,
I: 9,
J: 10,
K: 11,
L: 12,
M: 13,
N: 14,
O: 15,
P: 16,
Q: 17,
R: 18,
S: 19,
T: 20,
U: 21,
V: 22,
W: 23,
X: 24,
Y: 25,
Z: 26,
};
const adressDecoder = () => {
let startColumnString = ["AA"];
let startColumn = startColumnString.reduce((prev, curr) => {
if (prev === 0) return alphabet[curr];
return prev * 26 + alphabet[curr];
}, 0);
console.log(startColumn);
};
adressDecoder()
所以我尝试将类型转换为字母表对象,但我做错了,现在 console.log() 返回 undefined
interface Alphabet {
[key: string]: number;
}
export const alphabet: Alphabet = {
A: 1,
B: 2,
C: 3,
D: 4,
E: 5,
F: 6,
G: 7,
H: 8,
I: 9,
J: 10,
K: 11,
L: 12,
M: 13,
N: 14,
O: 15,
P: 16,
Q: 17,
R: 18,
S: 19,
T: 20,
U: 21,
V: 22,
W: 23,
X: 24,
Y: 25,
Z: 26,
};
const adressDecoder = () => {
let startColumnString = ["AA"];
let startColumn = startColumnString.reduce((prev: number, curr: string) => {
if (prev === 0) {
let result: number = alphabet[curr];
return result;
}
let result: number = prev * 26 + alphabet[curr];
return result;
}, 0);
console.log(startColumn);
};
adressDecoder()
如何正确定义 alpabet 对象的接口/类型?
【问题讨论】:
标签: javascript typescript