Skip to main content

Node.js SDK error: "/node_modules/@splitsoftware/splitio/types"' has no exported member 'SplitIO'

Issue

Using Node.js SDK, when trying to import SplitIO as a namespace in Typescript:

import { SplitIo } from '@splitsoftware/splitio';

The following error is thrown:

/node_modules/@splitsoftware/splitio/types"' has no exported member 'SplitIO'.

Root cause

TypeScript implicitly imports SplitIO namespace when doing import { SplitFactory } from '@splitsoftware/splitio';, and even the “typeRoots” config is not affecting it because the declaration file is included in the SDK package and the “types” field is properly configured.

Answer

You can explicitly import the SplitIO namespace (for example, on modules/files where SplitFactory is not being imported). To achieve this, include the line:

import SplitIO from '@splitsoftware/splitio/types/splitio';

This requires including "allowSyntheticDefaultImports": true in tsconfig.