Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 类型脚本构造函数参数。分析错误:意外的保留字';公共';_Javascript_Reactjs_Typescript - Fatal编程技术网

Javascript 类型脚本构造函数参数。分析错误:意外的保留字';公共';

Javascript 类型脚本构造函数参数。分析错误:意外的保留字';公共';,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我想在TypeScriptp+react中创建类 我决定用 但我在编译时出错了 这是我的UserData类 enum SecurityRole { USER = "USER", ADMIN= "ADMIN" } export class UserData { constructor(public name: string, readonly securityRole = SecurityRole.USER) { } } export

我想在TypeScriptp+react中创建类 我决定用 但我在编译时出错了

这是我的UserData类

enum SecurityRole {
    USER = "USER",
    ADMIN= "ADMIN"
}
export class UserData {
    constructor(public name: string, readonly securityRole = SecurityRole.USER) { }
}
export const createUserDataFromJson = (json: any): UserData => {
    console.log(`user from json : ` + json)
    return new UserData(json.name, json.securityRole)
}

但我收到了一个错误:

  Line 8:17:  Parsing error: Unexpected reserved word 'public'

   6 | }
   7 | export class UserData {
>  8 |     constructor(public name: string, readonly securityRole = SecurityRole.USER) { }
     |                 ^
   9 | }
  10 | export const createUserDataFromJson = (json: any): UserData => {
  11 |     console.log(`user from json : ` + json)
我想它可能与tsconfig.json有关,所以它是:

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "esnext",
    "strict": true,
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "allowSyntheticDefaultImports": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx",
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true
  },
  "include": [
    "src"
  ]
}
我正在项目(4.0.2)中使用
npm运行构建
这是
react脚本构建

npm版本
6.14.6
节点版本
v12.18.3


我做错什么了吗?还是我的项目设置有问题?

我试图通过将eslintConfig添加到我的package.json中来解决这个问题

 "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },

. JavaScript会给你这个错误(如果
enum
实际上在其他地方),但这是完全有效的TypeScript代码。你确定文件被解析为TypeScript吗?文件扩展名是什么?T.J.Crowder那是.ts文件。我也在那个在线编译器中试用过它,所以我想这是我的项目设置中的一些东西,这可能也很重要:我在我的项目中使用npm run build->这是“react scripts build”