IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
TypeScript support
editTypeScript support
editThe client offers a first-class support for TypeScript, shipping a complete set of type definitions of Elasticsearch’s API surface.
The types are not 100% complete yet. Some APIs are missing (the newest ones, e.g. EQL), and others may contain some errors, but we are continuously pushing fixes & improvements.
The client is developed against the latest
version of TypeScript. Furthermore, unless you have set skipLibCheck
to true
,
you should configure esModuleInterop
to true
.
Example
editimport { 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)
Request & Response types
editYou can import the full TypeScript requests & responses definitions as it follows:
import { estypes } from '@elastic/elasticsearch'
If you need the legacy definitions with the body, you can do the following:
import { estypesWithBody } from '@elastic/elasticsearch'