为现有React Native项目添加TypeScript遇TS1161错误求助
问题解决:TS1161 未终止正则表达式字面量错误
- 核心问题:你的组件文件用了
.ts后缀,但里面包含JSX语法,TypeScript默认不会在.ts文件中解析JSX,会把<符号误判为正则表达式的起始标记,从而抛出错误。 - 次要问题:你的JSX结构存在语法错误,
</View>闭合标签写在了return()的括号外面,这也会导致后续运行报错。
解决步骤
- 修改文件后缀:将
HomeAq.ts重命名为HomeAq.tsx。这就是官方文档第3步要求的操作——.tsx是React/React Native中用于包含JSX的TypeScript文件后缀,告诉编译器要处理JSX语法。 - 修复JSX结构错误:调整return语句中的标签位置,确保闭合标签在括号内:
import { StyleSheet, Text, View } from 'react-native' import React from 'react' const HomeAq = () => { return ( <View> <Text>HomeAq</Text> </View> ) } export default HomeAq const styles = StyleSheet.create({})
- 重新检查:运行
npx tsc,此时应该不会再出现正则相关的错误。
补充说明
你的tsconfig.json配置是正确的,"jsx": "react-native"已经指定了JSX的编译方式,问题完全出在文件后缀和JSX语法结构上。之前跳过的“将JavaScript文件重命名为*.tsx”步骤,本质就是让编译器识别包含JSX的文件类型,这一步是处理JSX+TypeScript的必要操作。
内容的提问来源于stack exchange,提问作者Ann
相关产品推荐
相关产品推荐

