不确定我做错了什么,但是发出的javascript正在窒息。
在我的interfaces.d.ts文件中,我有:
declare enum SideEnum {
None = 0, Buy, Sell, SellShort
}
interface Order {
symbol: string,
price: number,
qty: number,
side: SideEnum
}
在我的代码中,我有一个功能:
textToSide(text :string) : SideEnum {
if (text === 'buy')
return SideEnum.Buy;
else if (text === 'sell')
return SideEnum.Sell;
else if (text === 'sellshort')
return SideEnum.SellShort;
else
return SideEnum.None;
}
最后,当我使用上述内容时,我会这样做:
onFormSubmit = (evt:any) => {
const fields = this.state.fields;
const order :Order = {
symbol: fields.symbol,
price: parseFloat(fields.price),
qty: parseInt(fields.qty),
side: this.textToSide(fields.side)
}
const orders :Order[] = [...this.state.orders, order];
evt.preventDefault();
/* more stuff here */
}
当我运行代码时,我得到:“ReferenceError:SideEnum未定义”。我的app.bundle.js显示混乱在这里:
{
key: 'textToSide',
value: function textToSide(text) {
if (text === 'buy') return SideEnum.Buy;else if (text === 'sell') return SideEnum.Sell;else if (text === 'sellshort') return SideEnum.SellShort;else return SideEnum.None;
}
},
我做错了什么?在调用this.textToSide()?
时,我应该使用胖箭头的任何可能性谢谢
答案 0 :(得分:0)
根据Ryan的评论中的建议,我做了(而不是简单地声明'):
声明const enum SideEnum { ..... }
一切都落到了位置。
谢谢