TypeScript 在.ts文件中的JSX错误信息应该建议使用.tsx,

pes8fvy9  于 6个月前  发布在  TypeScript
关注(0)|答案(7)|浏览(51)

TypeScript版本: 3.2.0-dev.20181103
代码

<div></div>;

预期行为:

错误信息告诉我将文件扩展名更改为 .tsx

实际行为:

错误信息显示为 Cannot find name 'div'. ,这让我觉得我需要安装 @types/div 或类似的东西。

avkwfej4

avkwfej41#

我可以试试这个吗?

cgfeq70w

cgfeq70w2#

当然。这可能是第一个问题,因为当我们不在.tsx文件中时,我们将<div>解析为类型Assert表达式,而不是作为开放标签。因此,它可能需要一些启发式方法来检测可能是JSX开放标签的类型Assert表达式。

ztyzrc3y

ztyzrc3y3#

"简单"的方法是在.ts解析错误后尝试重新解析为.tsx,并在文件有效时给出建议作为.tsx。不确定这会产生什么性能影响。

aurhwmvo

aurhwmvo4#

我认为这个问题在于,在一个.ts文件中,如果有一个无关的解析错误,那么所有的类型Assert也会变成解析错误,使得真正的问题难以发现。

omjgkv6w

omjgkv6w5#

你不需要从.tsx解析中报告任何内容,除非它是成功的。因此,在无效的.ts文件(也不是有效的`.tsx文件)的情况下,行为将保持不变。

envsm3lx

envsm3lx6#

如果有一个<div></div>解析错误,同时还有一个无关的错误怎么办?

rsaldnfx

rsaldnfx7#

你不会收到 tsx 警告,这无疑是次优的。这是一个快速修复,但我同意你的观点,你的初始解决方案更好。

相关问题