typescript - 如何返回类型值
问题描述
我有这个随机化 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();
}
解决方案
您需要添加一个所谓的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();
}
推荐阅读
- vue.js - 如何在 Nuxt.js 中创建骨架加载?
- javascript - 我无法使用 RNFS 使用从 RNCameraRoll 获取的 phasset 读取文件
- python - 将键添加到键中已有的值,然后根据键名添加额外的值和键
- android - 如何将下一行从 Java 转换为 Kotlin
- android - 即使在应用程序被杀死后如何缓存数据一段时间?
- javascript - 如何设置picker的边框
- python - tensorflow中是否有类似的代码torch.backends.cudnn.benchmark/torch.cuda.synchronize()?
- scala - 如何添加字段以便稍后为 graphQL 定义与 Sangria 的关系?
- excel - VBA 宏比较日期取最早
- c++ - 读取访问冲突。_Mycont 为 nullptr