URI.js
URI.js copied to clipboard
@types/urijs/index can only be default-imported using the 'allowSyntheticDefaultImports' flag
Hello, I found an error that seems to be related to URIjs and ES6. Someone from 2016 [288] seems to have found this previously and couldnt replicate but here are the steps. Could you help me understand how to get around this?
Error: node_modules/stellar-sdk/lib/server.d.ts:2:8 - error TS1259: Module '"/node_modules/@types/urijs/index"' can only be default-imported using the 'allowSyntheticDefaultImports' flag
2 import URI from "urijs";
~~~
node_modules/@types/urijs/index.d.ts:26:1
26 export = URI;
~~~~~~~~~~~~~
This module is declared with using 'export =', and can only be used with a default import when using the 'allowSyntheticDefaultImports' flag.
To replicate
- ng new AppName
- npm install --save stellar-sdk
- add the SDK to the app within angular.json's build scripts: ["./node_modules/stellar-sdk/dist/stellar-sdk.min.js"]
- run the app to see the error
Figured this out quickly and thought I'd leave the fix here.
The usage stated an import like
import * as StellarSDK from "stellar-sdk";
that's where allowSyntheticDefaultImports comes in. From TS docs.
Allow Synthetic Default Imports -
allowSyntheticDefaultImports
When set to true, allowSyntheticDefaultImports allows you to write an import like:
import React from "react";
instead of:
import * as React from "react";
Please feel free to close.