Files
elasticsearch-js/docs/typescript.asciidoc
github-actions[bot] 85459370bc [Backport 8.0] Update connecting documentation (#1667)
Co-authored-by: Tomas Della Vedova <delvedor@users.noreply.github.com>
2022-03-28 12:23:23 +02:00

79 lines
1.7 KiB
Plaintext

[[typescript]]
=== TypeScript support
The 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.
[discrete]
==== Example
[source,ts]
----
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)
----
[discrete]
==== Request & Response types
You can import the full TypeScript requests & responses defintions as it follows:
[source,ts]
----
import { estypes } from '@elastic/elasticsearch'
----