【发布时间】:2020-08-19 17:04:10
【问题描述】:
在面向 es5 时如何使用 jest 和 typescript?我安装的 jest 似乎导致 typescript 错误地认为某些对象方法存在,而实际上它们并不存在。
总结 在安装 jest 之前,npx tsc ./index.ts --target es5 会抛出一个错误,因为 Object.values 在 es5 中不存在,正如我所期望的那样。安装 jest 后,相同的命令不再抛出错误。注意:我不是问如何使用 Object.values,我是在问为什么 typescript 不应该让我这样做。
下面是一个最小的例子。
设置
目录:
node_modules/
index.js
index.ts
package.json
package-lock.json
和
// package.json
{
"main": "index.js",
"devDependencies": {
"jest": "^26.4.0",
"typescript": "^3.9.7"
}
}
// index.ts
export const f = (x: Object) => Object.values(x);
我希望 typescript 在编译时会抛出错误,因为 Object.values 在 es5 中不可用。这会发生:
> npx tsc ./index.ts --target es5
产量:
index.ts:1:40 - error TS2339: Property 'values' does not exist on type 'ObjectConstructor'.
1 export const f = (x: Object) => Object.values(x);
~~~~~~
Found 1 error.
问题
安装 jest (npm install jest --save-dev) 后,同样的 typescript 命令运行没有任何问题:
# after installing jest
> npx tsc ./index.ts --target es5
没有错误。
如何将 jest 与 typescript 结合使用,并获得关于 Object.values 的准确警告?
【问题讨论】:
-
这能回答你的问题吗? Using jest with typescript and target es5
-
@jonrsharpe 这也是我的问题,和这个基本一样。 SO将该问题与另一个问题相关联,并告诉我“您的帖子已与类似问题相关联。如果此问题无法解决您的问题,请提出新问题。” ...所以我提出了一个新问题(在链接之后)。我实际上并没有意识到任何人都可以看到这个问题。我对链接有点困惑。 (编辑:我已经删除了那个问题。)
-
需要明确的是,stackoverflow.com/questions/42966362/… 绝对不会回答这个问题。那个是关于如何使用object.values,这个是关于让错误错误消失的玩笑。
标签: typescript jestjs