Tag: 键入

打字错误首先callback打字(noImplicitAny,strictNullChecks)

我想在一个项目中使用带有noImplicitAny和strictNullChecks声明一个带有错误优先callback的函数。 有没有办法来声明一个interface或type ,允许两个不同的签名和调用时工作? 最简单最直接的方法就是这样宣布 function example(callback: (err?: Error, result?: {data: any}) => void) { callback(undefined, {data: "hello"}); } 然而,这允许我调用callback() (没有参数),这不是我们想要做的事情,因为callback应该总是以错误或者结果来调用。 function example(callback: (err: Error | undefined, result: {data: any} | undefined) => void) { callback(undefined, {data: "hello"}); } 这不允许example() 。 callback必须用2个参数调用。 然而,这两种模式都意味着err和result都可能是undefined 。 这是不完美的,因为以下将导致错误。 example((err, result) => { if(err) { console.error(err); return; } console.log(result.data); }); […]