首页 > 解决方案 > 如何将自定义类型转换为原始类型?

问题描述

我有一个类型

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

标签: javascripttypescripttypescasting

解决方案


尝试:

myRating as unknown as number

此外,| number从您的声明中删除。

说明:如果不先擦除类型,就不能从自定义转换原始类型。擦除类型检查。unknown


推荐阅读