3

以下示例位于Preact 主页上。我想知道类花括号中如何/为什么有等号=分配和分号。我用谷歌搜索了几分钟,似乎无法弄清楚。;{}

这是 TypeScript 还是其他一些花哨的 JS 表亲?花括号看起来像常规分配,而不是类定义。

export default class TodoList extends Component {
    state = { todos: [], text: '' };
    setText = e => {
        this.setState({ text: e.target.value });
    };
    addTodo = () => {
        let { todos, text } = this.state;
        todos = todos.concat({ text });
        this.setState({ todos, text: '' });
    };
    render({ }, { todos, text }) {
        return (
            <form onSubmit={this.addTodo} action="javascript:">
                <input value={text} onInput={this.setText} />
                <button type="submit">Add</button>
                <ul>
                    { todos.map( todo => (
                        <li>{todo.text}</li>
                    )) }
                </ul>
            </form>
        );
    }
}
4

1 回答 1

5

这些是类实例字段(属性初始化器)。他们目前是第 2 阶段的提案。

它们的使用(与JS 引擎本身不支持importexport其他特性一起使用)意味着应该使用 Babel 来编译示例。

于 2017-01-23T05:50:48.717 回答