(err)
	}
	data, err := json.Marshal(src)
	if err != nil {
		t.Fatalf("marshaling to JSON failed: %v", err)
	}
	got := string(data)
	expected := `{"name":{"text":"n","term":{"field":"suggest"}}}`
	if got != expected {
		t.Errorf("expected\n%s\n,got:\n%s", expected, got)
	}
}

func TestTermSuggesterWithPrefixLengthSource(t *testing.T) {
	s := NewTermSuggester("name").
		Text("n").
		Field("suggest").
		PrefixLength(0)
	src, err := s.Source(true)
	if err != nil {
		t.Fatal(err)
	}
	data, err := json.Marshal(src)
	if err != nil {
		t.Fatalf("marshaling to JSON failed: %v", err)
	}
	got := string(data)
	expected := `{"name":{"text":"n","term":{"field":"suggest","prefix_length":0}}}`
	if got != expected {
		t.Errorf("expected\n%s\n,got:\n%s", expected, got)
	}
}


# 前端每周清单第 22 期：ES8 正式发布、React 与 GraphQL 开发指南和性能优化，Vue.js 2.4.0 发布以及使用 TypeScript 开发 Vue.js 应用

`前端` `前端每周清单`

[前端每周清单](http://www.infoq.com/cn/FE-Weekly)专注前端领域内容，分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。关注【前端之巅】微信公众号(ID：frontshow)，及时获取前端每周清单。

## 新闻热点

`国内国外，前端最新动态`

- [ECMAScript 2017(ES8)正式发布](https://parg.co/b10)：ECMAScript 2017 或 ES8 于 2017 年六月底由 TC39 正式发布，可以在[这里](https://www.ecma-international.org/ecma-262/8.0/index.html)浏览完整的版本；ES8 中代表性的特征包括了 String padding、Object.values、Object.entries、Object.getOwnPropertyDescriptors、 函数参数列表与调用中的尾部逗号、异步函数、共享内存与原子操作等。

- [Vue.js 2.4.0 发布](https://github.com/vuejs/vue/releases/tag/v2.4.0)：Vue.js 2.4.0 版本提供了内置的服务端渲染与异步组件支持，从而保证了在服务端渲染中也能使用异步组件，而不再是局限于路由中使用。此外该版本还简化了包装组件的写�