typeorm: Column type for UserModel#userId is not defined and cannot be guessed. Make sure you have turned on an "emitDecoratorMetadata": true option in tsconfig.json.
Column type for UserModel#userId is not defined and cannot be guessed. Make sure you have turned on an “emitDecoratorMetadata”: true option in tsconfig.json. Also make sure you have imported “reflect-metadata” on top of the main entry file in your application (before any entity imported).If you are using JavaScript instead of TypeScript you must explicitly provide a column type. ExceptionsManager.js:76 Module AppRegistry is not a registered callable module (calling runApplication)
package.json
{ "name": "janmanch", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest" }, "dependencies": { "@babel/runtime": "^7.1.2", "@ldn0x7dc/react-native-view-pager": "0.0.9", "npm": "^6.1.0", "react": "16.3.1", "react-native": "0.57.0", "react-native-bottomsheet": "^1.9.0", "react-native-datepicker": "^1.7.2", "react-native-device-info": "^0.21.5", "react-native-elements": "^0.19.1", "react-native-flexi-radio-button": "^0.2.2", "react-native-localization": "^1.0.10", "react-native-permissions": "^1.1.1", "react-native-splash-screen": "^3.0.9", "react-native-sqlite-storage": "^3.3.6", "react-native-swiper": "^1.5.13", "react-native-vector-icons": "^4.6.0", "react-navigation": "^2.3.1", "realm": "^2.8.4", "reflect-metadata": "^0.1.12", "remove": "^0.1.5", "typeorm": "^0.2.7" }, "devDependencies": { "@babel/plugin-external-helpers": "^7.0.0", "@babel/plugin-proposal-decorators": "^7.1.2", "@types/jest": "23.1.0", "@types/react": "16.3.18", "@types/react-native": "0.55.20", "@types/react-native-datepicker": "^1.6.3", "@types/react-navigation": "^2.0.5", "@types/react-test-renderer": "16.0.1", "babel-jest": "23.0.1", "babel-plugin-transform-async-to-generator": "^6.24.1", "babel-preset-react-native": "4.0.0", "jest": "23.1.0", "metro-react-native-babel-preset": "^0.47.0", "react-native-typescript-transformer": "1.2.10", "react-test-renderer": "16.3.1", "schedule": "0.4.0", "ts-jest": "22.4.6", "typescript": "2.9.2" }, "jest": { "preset": "react-native", "transform": { "^.+\\.(js)$": "<rootDir>/node_modules/babel-jest", "\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js" }, "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", "moduleFileExtensions": [ "ts", "tsx", "js", "jsx", "json", "node" ], "modulePaths": [ "<rootDir>" ] } }
tsconfig
{ "compilerOptions": { "allowSyntheticDefaultImports": true, "allowJs": true, "esModuleInterop": true, "jsx": "react", "module": "es6", "moduleResolution": "node", "noEmit": true, "noImplicitAny": true, "target": "es6", /*Below code custom added*/ "baseUrl": "./src", // "skipLibCheck": true, "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, // "outDir": "./build" }, "include": ["./src"], "exclude": ["node_modules"] }
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 1
- Comments: 40 (2 by maintainers)
@Column()must set a type,like@Column('text',{nullable:true})In your tsconfig.json, you can explicitly specify
"strict": false,to disable strict type-checking.Set the following in tsconfig.json
"emitDecoratorMetadata": true,and
"strict": false,Hello, i’ve built a plugin to compile runtime metadata information from TypeScript even if using
@babel/preset-typescriptinstead of TSC. Not sure if this is your problem, but in case you can try: https://github.com/leonardfactory/babel-plugin-transform-typescript-metadata#readmeElseway as @shouhuori suggested you can just type the colum type
Hi. I just ran into this issue and fixed it. When I had the issue, my entity looked like this:
And like @shouhuori mentioned, a type must be added to the column. And that fixed it:
From my understanding the type is required in the annotation for the database, while the other type below it is for typescript inference.
Thanks @leonardfactory for that package, it solved the problem for me!
to add to that - I found that it only worked when using the legacy decorator plugin for babel:
Adding a attributes in tsconfig.ts solved my problem: “emitDecoratorMetadata”: true You can refer details from api https://www.typescriptlang.org/docs/handbook/compiler-options.html
In my case I accidentally had an extra
@Columndecoratortbh none of the above solutions worked for me. What worked was clearing all the generated files under /dist and rebuilding the project.
I’m sure a noob like me will reach here sometime and it will help them 😄
My issue was with PrimaryColumn
I fixed it like:
@leonardfactory, that fixed the error I was having using typeorm with nextjs (which is using babel). Thanks!
Adding types everywhere eventually helped in my case, like
@Column('varchar'),@Column('integer')I have this issue tsconfig.json
app.ts
It makes absolutely no sense. I have tried doing everything in this issue to no avail. I don’t want to specify types manually.
I don’t know whether it can help you but for me it was I just complied my
NodeJSproject typescript files like this:tsc src/**/*which resulted in this error. When I just removed my.jsfiles in thesrcfolder, everything worked just fine.I should mention that tracking the error helped me a lot. To do that find
node_modules/typeorm/error/ColumnTypeUndefinedError.jsfile and inColumnTypeUndefinedErrorfunction beforereturn _this;addconsole.log(_this);or whatever log you use. This will show the entire error includingstack, instead of only message.Hope it could help you.
fixed in the TypeOrm 0.3.12 with Serverless 3.27. Thank You
In my case it was just a stupid copy paste error, might be your case too:
I was using both of them together
I hope that helps
with this code run for me
tsc .\src\index.ts --experimentalDecorators "true" --emitDecoratorMetadata "true"I solved my problem at class definition, I forgot to set
user_idfield onFile.ts:Do you mind posting a sample project gist, or a trivial example? Nothing from what you posted looks wrong to my eyes, but it may be that you are missing something in your source code. For example
import "reflect-metadata";in the entry point before importing entities, etc.Its working, thanks dude ❤️