TypeScript中Float64与Base64编码字节数组是否为同一类型?
解答你的TypeScript Base64类型疑惑
嘿,先给你拍板说清楚:Float64Array和你想要的Base64编码字符组成的字节数组完全不是一回事,二者没有任何关联。
先搞懂Float64到底是什么
TypeScript里的Float64Array属于TypedArray家族的一员,它专门用来存储64位双精度浮点数,本质就是个纯数字数组——每个元素都是number类型的浮点数,多用于数值计算、图形渲染这类场景,和字符串编码完全不沾边。
你需要的Base64相关类型该怎么定义
TypeScript确实没有内置这种类型,不过你可以手动定义出严格约束的类型:
1. 直接约束为Base64字符组成的数组
如果你的数组元素是Base64字符本身(比如['A', 'b', '3', '+']这种形式),可以先枚举所有合法的Base64字符,再衍生出数组类型:
// 枚举所有合法的Base64字符 type Base64Char = | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '+' | '/' | '='; // 由Base64字符组成的数组类型 type Base64CharArray = Base64Char[];
2. 约束为Base64字符对应的字节数组
如果你的数组是存储Base64字符的ASCII码(比如[65, 98, 51, 43]对应A, b, 3, +),可以定义对应的字节类型:
// 枚举所有Base64字符对应的ASCII码 type Base64Byte = | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 43 | 47 | 61; // 由Base64字节组成的数组类型 type Base64ByteArray = Base64Byte[];
这样你就能得到一个严格符合需求的自定义类型,用来表示Base64编码相关的数组啦。
内容的提问来源于stack exchange,提问作者Username123
相关产品推荐
相关产品推荐

