TypeScript的奇怪错误:
如图所示,错误为:
TS2345:“ErrnoException”类型的参数不可分配给 '(err:ErrnoException)=>类型的参数无效”。类型 'ErrnoException'不提供签名'(错误: ErrnoException):void'。
以下是导致错误的代码:
export const bump = function(cb: ErrnoException){
const {pkg, pkgPath} = syncSetup();
fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2), cb);
};
有人知道这里发生了什么吗?
答案 0 :(得分:2)
您正在发送类型为 ErrnoException 的值,而您调用的函数需要一个函数,该函数采用* ErrnoException类型的参数**并返回void。
您发送:
let x = new ErrnoException;
虽然您调用的函数需要
let cb = function(e: ErrnoException) {};
您可以更改功能以接收正确的参数。
export const bump = function(cb: (err: ErrnoException) => void){
const {pkg, pkgPath} = syncSetup();
fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2), cb);
};