打字稿:.toString(16) - 错误预期 0 个参数,但得到 1 个
Tyepscript : .toString(16) - Error Expected 0 arguments, but got 1
我正在尝试使用 number.toString(16) 函数将数字转换为十六进制,但出现错误 Error Expected 0 arguments, but got 1.
.
我的类型可能有问题,因为我相信它应该有效。
这是我的代码:
type ImageToEncode = {
pixelsAndColors: string[][][];
bounds: string[][][];
paletteIndex: string;
}
task("encodeImage", "Encode an image", async function(taskArgs: ImageToEncode) {
const hexPixelsAndColors = taskArgs.pixelsAndColors
.map((array: string[][]) => {
let firstChar = array[0].toString(16);
let secondChar = array[1].toString(16);
if(firstChar.length < 2) {
firstChar = `0${firstChar}`;
}
if(secondChar.length < 2) {
secondChar =`0${secondChar}`;
}
return [firstChar, secondChar];
})
.map((array: string[]) => array.join(""))
.join("");
const hexBounds = taskArgs.bounds.map(bound => {
let firstChar = bound.toString(16);
if(firstChar.length < 2) {
firstChar = `0${firstChar}`;
}
return firstChar;
}).join("");
const hexData = `0x${taskArgs.paletteIndex}${hexBounds}${hexPixelsAndColors}`
console.log(hexData);
return hexData;
});
对于信息可以像函数一样解释。
toString
需要 number.toString
的参数,而您正试图用字符串数组甚至 string[][]
调用 toString
。这是不正确的 let firstChar = array[0].toString(16) // expected error
.
如果您想将 string
转换为 hexadecimal
,您应该使用 parseInt(string, 10).toString(16)
。
例如:parseInt("100", 10).toString(16) // 64
如果你有一个字符串数组,你可以借助这个函数解析整个数组:
const toHex = (str: string) => parseInt(str, 10).toString(16)
const result = ['10', '42'].map(toHex)
我正在尝试使用 number.toString(16) 函数将数字转换为十六进制,但出现错误 Error Expected 0 arguments, but got 1.
.
我的类型可能有问题,因为我相信它应该有效。
这是我的代码:
type ImageToEncode = {
pixelsAndColors: string[][][];
bounds: string[][][];
paletteIndex: string;
}
task("encodeImage", "Encode an image", async function(taskArgs: ImageToEncode) {
const hexPixelsAndColors = taskArgs.pixelsAndColors
.map((array: string[][]) => {
let firstChar = array[0].toString(16);
let secondChar = array[1].toString(16);
if(firstChar.length < 2) {
firstChar = `0${firstChar}`;
}
if(secondChar.length < 2) {
secondChar =`0${secondChar}`;
}
return [firstChar, secondChar];
})
.map((array: string[]) => array.join(""))
.join("");
const hexBounds = taskArgs.bounds.map(bound => {
let firstChar = bound.toString(16);
if(firstChar.length < 2) {
firstChar = `0${firstChar}`;
}
return firstChar;
}).join("");
const hexData = `0x${taskArgs.paletteIndex}${hexBounds}${hexPixelsAndColors}`
console.log(hexData);
return hexData;
});
对于信息可以像函数一样解释。
toString
需要 number.toString
的参数,而您正试图用字符串数组甚至 string[][]
调用 toString
。这是不正确的 let firstChar = array[0].toString(16) // expected error
.
如果您想将 string
转换为 hexadecimal
,您应该使用 parseInt(string, 10).toString(16)
。
例如:parseInt("100", 10).toString(16) // 64
如果你有一个字符串数组,你可以借助这个函数解析整个数组:
const toHex = (str: string) => parseInt(str, 10).toString(16)
const result = ['10', '42'].map(toHex)