typescript enum未正确翻译

时间:2018-01-30 21:28:12

标签: reactjs typescript

不确定我做错了什么,但是发出的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()?

时,我应该使用胖箭头的任何可能性

谢谢

1 个答案:

答案 0 :(得分:0)

根据Ryan的评论中的建议,我做了(而不是简单地声明'):

声明const enum SideEnum { ..... }

一切都落到了位置。

谢谢