Skip to content

TypeScript setup

Install the declarations and Node types as development dependencies:

bash
npm install --save-dev typescript @types/node @vimp-mp/types

Use one configuration per runtime context.

jsonc
// tsconfig.server.json
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "strict": true,
    "types": ["@vimp-mp/types/server", "node"],
    "rootDir": "src/server",
    "outDir": "dist/scripting/server"
  },
  "include": ["src/server/**/*.ts", "src/server/**/*.d.ts"]
}

For client code, replace the types entry with @vimp-mp/types/client and omit Node types. CEF bundles use @vimp-mp/types/ui plus the DOM library.

jsonc
{
  "compilerOptions": {
    "types": ["@vimp-mp/types/client"],
    "lib": ["ES2022", "DOM"]
  }
}

@vimp-mp/types contains declarations only. Use import type for named types, and never emit a runtime import from the package.

ts
import type { Player } from '@vimp-mp/types/server'

function greet(player: Player) {
  console.log(`Welcome, ${player.name}`)
}

VIMP developer documentation