Машинопись кортежа как тип возврата карты? - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь добавить кортеж при возврате карты, но получаю ошибку,

"use strict"

const row = ['true', '12', 'apple']

type cleanRowType =  [boolean, number, string]


const cleanRow: cleanRowType = row.map(
  (item, i) => i === 2 ? item : i === 1 ? +item : i === 0 ? Boolean(item) : '')


console.log('cleanRow', cleanRow)

https://stackblitz.com/edit/typescript-6dbd8k

1 Ответ

0 голосов
/ 25 мая 2020

Typescript недостаточно умен, чтобы знать отдельные типы каждого элемента массива, он знает только, что каждый элемент равен boolean | number | string. Чтобы исправить это, не используйте карту:

const cleanRow: cleanRowType = [Boolean(row[0]), +row[1], row[2]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...