@ types / jsonwebtoken 7.2.1给出了奇怪的类型错误。为什么?

时间:2017-06-16 19:26:10

标签: node.js typescript types json-web-token

我正在使用node v6.10.3typescript v2.3.4jsonwebtoken v7.4.1。直到今天,我才使用@types/jsonwebtoken v7.2.0中的类型信息,但我升级到@types/jsonwebtoken v7.2.1,现在当我运行我的应用程序时,它会出错:

src/reports/password-reset/password-reset.report.ts(18,23): error TS2345: Argument of type '{ ownerId: string; passwordResetToken: boolean; }' is not assignable to parameter of type 'string | object | Buffer'.
  Object literal may only specify known properties, and 'ownerId' does not exist in type 'string | object | Buffer'.

代码行:

let token = sign({ownerId:passwordResetRequest.ownerId, passwordResetToken: true }, 
    configuration.secret, {
    expiresIn: timeToLiveInSeconds
});

@types/jsonwebtoken v7.2.0不会出现此错误,仅v7.2.1

奇怪的是,如果我在Visual Studio Code(相同版本的TypeScript)中构建我的项目,它会显示相同的错误,但是当我单击错误并转到相关文件时,错误就消失了,VS Code很满意语法。

此外,错误消息告诉我,我的对象{ownerId:passwordResetRequest.ownerId, passwordResetToken: true }无法传递给string | object | Buffer类型的参数,但它显然是一个对象。我不知道为什么它甚至关心对象的内容是什么。

另请注意,它工作正常 - 就像实际的jsonwebtoken库一样好 - 只是在构建期间导致问题的@type信息。

所以我刚回到@types/jsonwebtoken v7.2.0,一切正常。这不是一个大问题,但是发生了什么?

1 个答案:

答案 0 :(得分:0)

好的 - 看起来像here。 (TypeScript中的错误)

如果有人来这里看同样的问题,请保留这个问题。应该首先看一下GitHub问题列表。