我试图克隆并运行一个开源项目存储库,并且很难解决此问题,npm start失败,并显示“ compile failed error”,并指出以下原因。
类型'{}'的参数不能分配给类型'Uint8Array'的参数
const [encChallenge] = await waitEvent(socket, 'data')
const challenge = decrypt(encChallenge) //This line causes the error
遵循decrypt
函数
/** Decrypt data used shared key */
function decrypt(data: Uint8Array) {
if (!sharedKey) return null
const nonce = data.slice(0, sodium.crypto_box_NONCEBYTES)
const box = data.slice(sodium.crypto_box_NONCEBYTES, data.length)
const msg = crypto.decrypt(box, nonce, sharedKey)
return msg
}
将参数更改为any
可以解决该问题,但我不能这样做,
如何将参数转换为Unit8Array?
答案 0 :(得分:0)
只要encChallenge
是一个类型化数组,它表示8位无符号整数的数组,那么您应该可以:
const [encChallenge] = await waitEvent(socket, 'data')
const challenge = decrypt(new Uint8Array(encChallenge);)
真的,我会在waitEvent
方法中将encChallenge
Uint8Array
设为强类型waitEvent
,然后将其抽象掉,并且如果您再次使用它,则总是该类型。