javascript - 如何将自定义类型转换为原始类型?
问题描述
我有一个类型
type Rating = 0 | 1 | 2 | 3 | 4 | 5 | number
现在我想做这样的事情。
let myRating:Rating = 4
let rate:number = myRating as number
如何将我的myRating
转换为number
原始类型?
它给了我错误:
将 'Rating' 类型转换为 'number' 类型可能是一个错误,因为这两种类型都没有与另一种充分重叠。如果这是故意的,请将表达式转换为“未知” first.ts(2352)
我经历过,但我想要的是相反的
编辑:
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
从您的声明中删除。
说明:如果不先擦除类型,就不能从自定义转换为原始类型。擦除类型检查。unknown
推荐阅读
- perl - Sock 服务器和客户端
- excel - 工作簿中的隐藏链接我无法删除
- ssl-certificate - SSL/TLS 证书中的 IP 地址通配符
- react-native - 反应本机切换样式
- jdbc - Spark 使用 ur 命令读取 jdbc db2
- assembly - asm 中的常量 (.equ)
- google-sheets - 如何汇总具有多个标准的特定信息,包括表单提交的日期
- docker - 构建 kafka-connect 5.5.0 docker 映像时出现 Docker 构建错误
- json - 在飞镖中解析对象(未处理的异常:类型'_InternalLinkedHashMap
' 不是类型 'Map 的子类型 ') - sql - 如何将一列中的所有值相乘得到一个数字?