我最近更新了我项目中的@types/jest包,从版本24.9.1升级到版本29.4.0。但是,我现在在包本身的index.d.ts文件中遇到了一个解析错误,该文件位于node_modules/@types/jest目录中。错误消息是Parsing error: ']' expected。
@types/jest
node_modules/@types/jest
Parsing error: ']' expected
我不确定这个问题是否是由我的TypeScript版本(3.8.3)引起的,因为当我使用相同的TypeScript版本在不同的项目上尝试相同的更新时,它工作得很好。
imzjd6km1#
以下类型定义在您的版本(3.8.3)中已损坏,因为TypeScript 4.1中引入了此新的keyof-as语法。
keyof
as
type Func = Function; type NonFunctionPropertyNames<T> = keyof { [K in keyof T as T[K] extends Func ? never : K]: T[K] };
参见:"TypeScript keyof returning specific type"您需要将TypeScript编译器升级到版本≥ 4.1。
在版本3.8.3中损坏https://www.typescriptlang.org/play?ts=3.8.3#code/C4TwDgpgBAYgrgOwMZQLy0U4BLA9ggbgChRIoA5feZHfABQCddIHRyBDAWwgGcAeACoA+NFADWEELgBmUAN5QA2gGko2BOMkyoAqOx46VAXSgQAHsAgIAJgeooA-FAQQAbhAZQAXFGVGfAsZQAL4EQA适用于≥ 4.1版本https://www.typescriptlang.org/play?ts=4.1.5#code/C4TwDgpgBAYgrgOwMZQLy0U4BLA9ggbgChRIoA5feZHfABQCddIHRyBDAWwgGcAeACoA+NFADWEELgBmUAN5QA2gGko2BOMkyoAqOx46VAXSgQAHsAgIAJgeooA-FAQQAbhAZQAXFGVGfAsZQAL4EQA
3.8.3
≥ 4.1
1条答案
按热度按时间imzjd6km1#
以下类型定义在您的版本(3.8.3)中已损坏,因为TypeScript 4.1中引入了此新的
keyof
-as
语法。参见:"TypeScript keyof returning specific type"
您需要将TypeScript编译器升级到版本≥ 4.1。
测试用例
在版本
3.8.3
中损坏https://www.typescriptlang.org/play?ts=3.8.3#code/C4TwDgpgBAYgrgOwMZQLy0U4BLA9ggbgChRIoA5feZHfABQCddIHRyBDAWwgGcAeACoA+NFADWEELgBmUAN5QA2gGko2BOMkyoAqOx46VAXSgQAHsAgIAJgeooA-FAQQAbhAZQAXFGVGfAsZQAL4EQA
适用于
≥ 4.1
版本https://www.typescriptlang.org/play?ts=4.1.5#code/C4TwDgpgBAYgrgOwMZQLy0U4BLA9ggbgChRIoA5feZHfABQCddIHRyBDAWwgGcAeACoA+NFADWEELgBmUAN5QA2gGko2BOMkyoAqOx46VAXSgQAHsAgIAJgeooA-FAQQAbhAZQAXFGVGfAsZQAL4EQA