I have a type
type Rating = 0 | 1 | 2 | 3 | 4 | 5 | number
Now I want to do something like this.
let myRating:Rating = 4
let rate:number = myRating as number
How can I cast my myRating
into number
primitive type?
It is giving me error as:
Conversion of type 'Rating' to type 'number' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.ts(2352)
I have been through this, but what I want is its reverse
Edit:
tsconfig.json
{
"compilerOptions": {
"noImplicitAny": false,
"target": "es6",
"allowJs": true,
"skipLibCheck": false,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve",
"strict": true
},
"include": [
"src"
]
}
tsc version: 3.2.1
You cannot cast from a custom to a primitive without erasing the type first. unknown
erases the type checking.
Try :
myRating as unknown as number
Or :
myRating as any
Also, remove | number
from your declaration.