Streamlining the imports and exports using Typescript

As a newcomer to the world of JavaScript and TypeScript, I have been exporting my components like this. However, as my component list grows day by day, I feel the need to optimize the structure.

import Notification from "./Notification";
import Confirmation from "./Confirmation";
import Button from './Button';
import Input from './Input';
import Dropdown from "./Dropdown";
import Add from "./Add";

export {
    Notification,
    Confirmation,
    Button,
    Input,
    Dropdown,
    Add,
}

I am seeking advice on how to better organize and structure these exports using vanilla JavaScript or TypeScript techniques.

Answer №1

If you are working in your index.ts/index.js file, consider using the syntax export .. from "..." (where ... represents either a default import or named imports, with ... being a filepath).

export * as Notification from "./Notification";
export * as Confirmation from "./Confirmation";
export * as Button from './Button';
export * as Input from './Input';
export * as Dropdown from "./Dropdown";
export * as Add from "./Add";

However, this approach may not be ideal as you have to access the default value by adding .default after the component name like Notification.default.

A better alternative would be to use named exports if all your other files follow that pattern (export Notification;):

export { Notification } from "./Notification";
export { Confirmation } from "./Confirmation";
export { Button } from './Button';
export { Input } from './Input';
export { Dropdown } from "./Dropdown";
export { Add } from "./Add";

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Can the ngx-chips library be used to alter the language of chips?

Currently, I am working with the ngx-chips library and encountering a particular issue. Here is an image representation of the problem: https://i.sstatic.net/GL3Fd.png The challenge I am facing involves updating the language of the chips based on the sele ...

Trouble loading Styled Components in React Typescript with Webpack configuration

Hey there! I'm diving into the world of styled components for the first time, and I'm a bit lost on where I might have slipped up. I've got my webpack all sorted out and my .babelrc file in place. As I was going through the Styled Component ...

What is the importance of typescript requiring the use of generics?

const typeFunction = <T>(a:string, {c,d} = {c: T[], D:T} = {})=>{} In what way does TypeScript enforce the usage of generics? I am looking to create a function that requires a specific type (T) to be passed in when it is used. typeFunction<st ...

What is the reason for receiving an error with one loop style while the other does not encounter any issues?

Introduction: Utilizing TypeScript and node-pg (Postgres for Node), I am populating an array of promises and then executing them all using Promise.all(). While pushing queries into an array during iteration over a set of numbers, an error occurs when the ...

The AngularJS $resource is taking the entire object and embedding it into the URL

I am currently utilizing Angular version 1.4.8 along with Angular UI and TypeScript in my project. The models are defined as follows: export interface IBatch extends ng.resource.IResource<IBatch> { id: Number; ... } export interface IBatchR ...

What is the method to select and activate the second item in the list within the second unordered list?

This is a unique text that I am using to test the footer element of a website. await page.waitForSelector(".footer-menu", {timeout: 10000}) const unorderedList = await page.locator('.footer-menu:nth-child(1) li:nth-child(2)'); un ...

Achieving CommonJS imports compilation with Typescript

In my TS file, I've included a 3rd party package using import XXX { YYY, ABC, 123 } from 'XXX'; While it compiles to CommonJS without any issues, I'd prefer to have it compiled to an ESModule instead. I tried changing the target and mo ...

TSLint warning: Duplicate identifier detected - 'err'

Currently facing an issue with tslint displaying the following error Shadowed name: 'err' Providing the code snippet for reference fs.readdir(fileUrl, (err, files) => { fs.readFile(path.join(fileUrl, files[0]), function (err, data) ...

How do React Native proxies differ from vanilla React proxies in their functionality?

Trying to retrieve data from an API running locally on port 5000 of my device, I recalled setting the proxy in package.json when working on React web applications: "proxy": "https://localhost:5000" Attempting to fetch information f ...

Next.js API is throwing a TypeError because req.formData is not a recognized function

Below is the code snippet for the Next.js route I am working on: import { NextRequest, NextResponse } from 'next/server'; export const config = { runtime: 'edge', }; export default async function POST(req: NextRequest): Promise< ...

Leverage the child interface as a property interface containing a generic interface

I'm facing an issue while trying to incorporate typings in React. The concept is centered around having an enum (EBreakpoint) that correlates with each device we support. A proxy wrapper component accepts each device as a prop, and then processes the ...

Guide to personalizing the ngxDaterangepickerMd calendaring component

I need to customize the daterangepicker library using ngxDaterangepickerMd in order to separate the start date into its own input field from the end date. This way, I can make individual modifications to either the start date or end date without affectin ...

Effortlessly bring in Typescript namespace from specific namespace/type NPM package within a mono-repository

Instead of repeatedly copying Typescript types from one project to another, I have created a private NPM package with all the shared types under a Typescript namespace. Each project installs this NPM package if it uses the shared types. index.d.ts export ...

Error: The OOP class value for translateX in the Web Animation API is returning as undefined

I'm currently working on a basic animation project using JavaScript. I have utilized the Animation class from the Web Animation API. My goal is to create multiple instances of this class in order to animate different elements with varying values and r ...

Is there a way to refresh a JSON file in an Angular app without needing to recompile the entire application?

I am currently extracting information from a JSON file stored in my assets folder and displaying it in a table format. At the moment, the JSON file is only loaded during the Angular application build process. I want to make it possible to dynamically load ...

Retrieving information from a JSON object in Angular using a specific key

After receiving JSON data from the server, I currently have a variable public checkId: any = 54 How can I extract the data corresponding to ID = 54 from the provided JSON below? I am specifically looking to extract the values associated with KEY 54 " ...

Exporting the extended express request in a TypeScript library for seamless integration

I have been working on developing a library that extends the express Response object with a custom method called warn(). I want this new warn() method to be easily accessible when using the library. Here is the configuration in my tsconfig.json: { " ...

Alert in Typescript when spreading keys that are not required

Can someone explain why I am getting a compiler warning from Typescript when attempting to create a new object based on an existing object of the same type? In the snippet below, spreading the key2 value results in the error message Type 'string | un ...

In React + TypeScript, learn how to effectively pass down a function from a container component to a

I am currently working on developing a tabs application using React and Typescript. The main component, Tabs, manages the state and passes it down to the Content component. Additionally, I have implemented a function called 'handleName' which is ...

Is there a way to assign DTO to an entity within typescript?

For my current project, I am utilizing Vue with TypeScript and Axios to retrieve objects from the backend. Here is an example of the object type I am working with: class Annoucement { id!: string; description?: string; deal?: Deal; realty?: ...