Pular para o conteúdo principal

Suporte a TypeScript

O Mind Elixir Core é escrito em TypeScript e não exige a instalação de pacotes npm adicionais. O suporte a TypeScript é nativo.

import MindElixir, { MindElixirData, Options } from 'mind-elixir'

const options: Options = {
el: '#map',
}
const data: MindElixirData = {
nodeData: {
id: 'root',
topic: 'root',
children: [
{
id: 'sub1',
topic: 'sub1',
children: [
{
id: 'sub2',
topic: 'sub2',
},
],
},
],
},
}
const mei = new MindElixir(options)
mei.init(data)

Tipos genéricos​

A exportação padrão é uma classe genérica, portanto os metadados personalizados dos nós fluem pela própria classe:

import MindElixir, { type NodeObj, type Options } from 'mind-elixir'

type Metadata = { owner?: string; due?: string }

const options: Options<Metadata> = { el: '#map' }
const mind = new MindElixir<Metadata>(options)
const root: NodeObj<Metadata> = mind.nodeData

Quando uma variável guarda o construtor (por exemplo, em uma factory), anote-a com typeof MindElixir:

const Ctor: typeof MindElixir = MindElixir
const anotherMind = new Ctor<Metadata>({ el: '#map' })

Options, MindElixirData, NodeObj, NodeObjExport e Theme aceitam o mesmo parâmetro de tipo para metadados. Consulte o Guia da API v6 para o restante da API.