как вернуть набранное значение - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть эта функция, которая рандомизирует 3 строки, но когда я пытаюсь вернуть значение, я получаю эту ошибку

Тип «строка» не может быть назначен типу «« ДЕНЬ »| "ГТД" | "GT C" '

моя функция:

export const randomizeTimeinforce = (): 'DAY' | 'GTD' | 'GTC' => {
  const timeinforce = ['DAY', 'GTD', 'GTC'];
  return timeinforce[Math.floor(Math.random() * 3)];
};


export class MyCoolClass {
  public timeinforce: 'DAY' | 'GTD' | 'GTC' = randomizeTimeinforce();
}

1 Ответ

3 голосов
/ 02 апреля 2020

Вам нужно будет добавить так называемое const assertion , чтобы TS не интерпретировал ваш массив timeinforce как string[]. Это последнее (по умолчанию) поведение также называется расширением типов, и его здесь следует избегать ...

export const randomizeTimeinforce = () => {
  const timeinforce = <const>['DAY', 'GTD', 'GTC'];
  return timeinforce[Math.floor(Math.random() * 3)];
};


export class MyCoolClass {
  public timeinforce = randomizeTimeinforce();
}

площадка TypeScript

...