Tag: 接口

如何扩展Error类?

这是我的代码: let errorBadRequest = new Error("Bad request"); res.statusCode = 400; errorBadRequest.errors = err.details.reduce(function(prev, current) { prev[current.path] = current.message; return prev; }, {}); throw errorBadRequest; 我想在错误实例中扩展error属性,但是tsc表示joi-utils.ts(21,23): error TS2339: Property 'errors' does not exist on type 'Error'. errors的结构是{fieldname: fieldmsg} ,这是根据我的joi请求模式来决定的。 如何解决从打字稿编译器的错误? 我想我需要声明一个接口并指定属性。

将属性添加到node.js中的嵌套接口

在一个名为“some-file.ts”的文件中,我想这样做: global.someProp = someVar; 而global是在node.d.ts中定义的NodeJS.Globaltypes的预定义对象。 我怎样才能使这个接口部分? 我已经尝试了以下所有无效: interface Global { someProp: string; } global.someProp = someVar; interface NodeJS.Global { someProp: string; } global.someProp = someVar; namespace NodeJS{ interface Global { someProp: string; } } global.someProp = someVar; 我不断收到: TS339:“全局”types中不存在属性“someProp” 我该如何解决?

打字错误首先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); }); […]

有没有办法在ES6 / Node 4中创build接口?

ES6在节点4中是完全可用的。我想知道它是否包含一个定义方法合约的接口的概念,就像在MyClass implements MyInterface 。 我找不到我的谷歌search,但也许有一个很好的技巧或解决方法可用。