如何 return 输入值
how to return typed value
我有这个函数可以随机化 3 个字符串,但是当我尝试 return 这个值时,我得到了这个错误
Type 'string' is not assignable to type '"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 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();
}
我有这个函数可以随机化 3 个字符串,但是当我尝试 return 这个值时,我得到了这个错误
Type 'string' is not assignable to type '"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 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();
}