TypeScript类型断言报错:JSX元素'string'无对应闭合标签如何解决?
解决TypeScript类型断言触发JSX解析错误的问题
你的代码报错核心原因是:在TSX文件(TypeScript+JSX混合文件)中,尖括号<string>的写法会被编译器误认为是JSX标签,而非类型断言,所以才会抛出那些和JSX相关的错误(比如找不到React、标签未闭合等)。
给你两种可行的解决办法:
改用
as语法的类型断言(TSX场景下官方推荐写法)
修改后的代码如下:let sname: any = "aabiskar"; let longnumber: number = (sname as string).length; console.log("this is length ", longnumber);这种写法不会和JSX标签语法冲突,在TSX文件中可以正常识别为类型断言。
若坚持用尖括号语法,修改文件后缀为
.ts
纯TypeScript文件(.ts)不会启用JSX解析规则,编译器会把<string>正确识别为类型断言,不会再报JSX相关错误。
如果你的项目本身需要用到JSX(比如React项目),优先选择第一种方法,避免语法歧义。
内容的提问来源于stack exchange,提问作者Aabiskar
相关产品推荐
相关产品推荐

