Как я могу привести пользовательский тип к примитивному типу? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть тип

type Rating = 0 | 1 | 2 | 3 | 4 | 5 | number

Теперь я хочу сделать что-то вроде этого.

let myRating:Rating = 4
let rate:number = myRating as number

Как я могу привести свой myRating в number примитивный тип?

Это дает мне ошибку как:

Преобразование типа 'Рейтинг' в тип 'число' может быть ошибкой, потому что ни один тип не совпадает в достаточной степени с другим.Если это было сделано намеренно, преобразуйте выражение в 'unknown' 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

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

Я думаю, что это исправлено в обновлении машинописного текста 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;

оба работают нормально.

Детская площадка TS

0 голосов
/ 17 декабря 2018

Попробуйте:

myRating as unknown as number

Кроме того, удалите | number из вашего объявления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...