首页 > 解决方案 > 如何返回类型值

问题描述

我有这个随机化 3 个字符串的函数,但是当我尝试返回值时,我得到了这个错误

类型 'string' 不可分配给类型 '"DAY" | “GTD” | “GTC”

我的功能:

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();
}

标签: typescriptclasstyping

解决方案


您需要添加一个所谓的const 断言以避免 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 游乐场


推荐阅读