TypeScript 支持
编辑TypeScript 支持
编辑该客户端为 TypeScript 提供一流的支持,附带 Elasticsearch API 表面的完整类型定义集。
这些类型并非 100% 完整。一些 API 缺失(例如,最新的 EQL),另一些可能包含一些错误,但我们正在不断地推进修复和改进。请向 elasticsearch-specification github 仓库 贡献类型修复和改进。
该客户端是根据最新版本的 TypeScript 开发的。此外,除非你将 skipLibCheck
设置为 true
,否则你应该将 esModuleInterop
配置为 true
。
示例
编辑import { Client } from '@elastic/elasticsearch' const client = new Client({ cloud: { id: '<cloud-id>' }, auth: { apiKey: 'base64EncodedKey' } }) interface Document { character: string quote: string } async function run () { // Let's start by indexing some data await client.index({ index: 'game-of-thrones', document: { character: 'Ned Stark', quote: 'Winter is coming.' } }) await client.index({ index: 'game-of-thrones', document: { character: 'Daenerys Targaryen', quote: 'I am the blood of the dragon.' } }) await client.index({ index: 'game-of-thrones', document: { character: 'Tyrion Lannister', quote: 'A mind needs books like a sword needs a whetstone.' } }) // here we are forcing an index refresh, otherwise we will not // get any result in the consequent search await client.indices.refresh({ index: 'game-of-thrones' }) // Let's search! const result= await client.search<Document>({ index: 'game-of-thrones', query: { match: { quote: 'winter' } } }) console.log(result.hits.hits) } run().catch(console.log)
请求和响应类型
编辑你可以按如下方式导入完整的 TypeScript 请求和响应定义
import { estypes } from '@elastic/elasticsearch'
如果你需要带有主体的旧版定义,可以执行以下操作
import { estypesWithBody } from '@elastic/elasticsearch'