タイプがあります
type Rating = 0 | 1 | 2 | 3 | 4 | 5 | number
今、私はこのようなことをしたいと思います。
let myRating:Rating = 4
let rate:number = myRating as number
myRating
をnumber
プリミティブ型にキャストするにはどうすればよいですか?
それは私にエラーを与えています:
タイプ「評価」からタイプ「数値」への変換は、どちらのタイプも他方と十分に重複していないため、誤りである可能性があります。これが意図的なものである場合は、最初に式を「不明」に変換します。ts(2352)
私は this を経験しましたが、私が欲しいのはその逆です
編集:
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バージョン:3.2.1
試してください:
myRating as unknown as number
また、| number
宣言から。
TypeScriptアップデートTS 3.5.1で修正されたと思います
type Rating = 0 | 1 | 2 | 3 | 4 | 5;
let myRating:Rating = 4
今
let rate:number = myRating;
そして
let rate:number = myRating as number;
どちらも正常に動作しています。