Tips on exporting a TypeScript class while maintaining private related variables

Consider this scenario:

const hidden = Symbol()

export class Foo {
  static [hidden] = 'I prefer no one to modify this'
}

The compiler throws an error TS4028: Public static property '[hidden]' of exported class has or is using private name 'hidden'.

I am aware that 'hidden' is intended to be private. I simply do not want to export it.

Is there a way to suppress this error message?

Answer №1

If you are encountering this issue, it is related to the generation of declaration files using the --declaration flag in the TypeScript compiler. If declaration files are not essential for your project, consider disabling this option to resolve the error.

However, if you do require declaration files, there is a workaround available through an experimental compiler option called --stripInternal. This option prevents the generation of declarations for code marked with /** @internal */. For example:


const hidden = Symbol()

export class Foo {
    /** @internal */
    static [hidden] = 'I dont want another touch this'
}

Implementing this approach should eliminate the error message. Could you please confirm if this solution works for you?

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

What causes the difference in inference for unspecified generics between a simple function call and a null-coalescing operator in TypeScript?

What causes the different types of a and b in the given code snippet? function empty<T>() { return [] as T[] } const defEmpty = empty() function test1(abc: number[]|null) { const a = abc ?? defEmpty const b = abc ?? empty() } Upon testing on t ...

Update the component with the current route and state synchronization with react router dom

Is there a method to synchronize the active route in the browser with the component state? When I click on "Route 2" in the navigation bar, it gets highlighted as the active route and the browser URL shows "/route2". However, upon refreshing the page, "Ro ...

Embarking on a New Project with Cutting-Edge Technologies: Angular, Node.js/Express, Webpack, and Types

Recently, I've been following tutorials by Maximilian on Udemy for guidance. However, I have encountered a roadblock while trying to set up a new project from scratch involving a Node/Express and Angular 4 application. The issue seems to stem from the ...

Unable to find solutions for all parameters of the TemlComponent: (?). encountering a syntax error (compiler.js:1016)

As a beginner in Angular, I'm struggling to pinpoint the error in my code and understand why I'm encountering this issue. The error message reads: "Can't resolve all parameters for TemlComponent: (?). at syntaxError (compiler.js:1016)." To ...

Testing components in React involves creating or invoking specific construct or call signatures

Exploring this React component: import { Meta } from '@storybook/react'; export function MyComponentExample() { return ( <div>my component example</div> ); } export default { component: MyComponentExample, title: 'M ...

The functionality of two-way data binding seems to be failing in Angular 2

I encountered an issue in my Angular 2 application where I attempted to bind view data using ngModel, but it did not function as expected. event.component.html <div class="form-group"> <label for="comment">About Us:</label> ...

The response parser in Angular 7 is failing to function correctly

Hey, I recently updated my Angular from version 4.4 to the latest 7 and after encountering several errors, I was able to get my service up and running. However, I'm facing an issue with my output parser function which is supposed to parse the login re ...

How do I specify the return type of a function in Typescript that can return more than one type?

I am facing a situation where I have a method called getFilters that retrieves various types of values. getFilters(): IListFilteringType {...} type IListFilteringTypeMultiSelect = (string | number)[]; type IListFilteringType = boolean | string | number | ...

How can I retrieve properties from a superclass in Typescript/Phaser?

Within my parent class, I have inherited from Phaser.GameObjects.Container. This parent class contains a property called InformationPanel which is of a custom class. The container also has multiple children of type Container. I am attempting to access the ...

Here is a guide on showcasing information obtained from ASP.NET API in Angular version 13

My goal is to fetch motorcycle data from a web API and showcase it in my Angular project. ASP.NET Framework Web API 4.7 Angular CLI: 13.3.7 Angular: 13.3.11 On the Web API end: Controller: [EnableCors(origins: "*", headers: "*", ...

Tips for storing information without using ngModel in template-driven methodology

Currently facing a dilemma where data needs to be saved to the database from Angular UI. The display format of tabular data changes dynamically based on dropdown selections, without having predefined model properties for binding. The question arises: How ...

instructions on how to refresh a component while maintaining the same URL

Imagine a scenario where there is a menu containing various items. Each time the user clicks on a menu item, they are redirected to a specific URL. However, if the user clicks on the same menu item again, the component should be reloaded and all previously ...

Managing file imports in Angular 2+ Unit Testing

Within my project, there are various utility functions that handle data transformations and other tasks. These functions are not contained within a class and are utilized across multiple utility files. Being relatively new to angular testing, I've sp ...

react-router: The 'history' type is not found in the current context

Here is some code snippet from App.tsx: interface AppProps{ history: any } export default class App extends React.Component<AppProps,...> { public state = { target: this.props.history.push('/') }; private route() { if (! ...

What is the solution for the error stating "Unable to locate a declaration file for the module 'request-context'."?

I am currently working on three different files: index.js, index.main.js, and app.js. My goal is to use request-context to extract a variable from index.main.js and pass it to index.js. Within my app.js file, located in the server folder, I have the follo ...

The code encountered an error with message TS2345 stating that the argument type '(a: Test, b: Test) => boolean | 1' cannot be assigned to a parameter type of '(a: Test, b: Test) => number'

Apologies for the lengthy subject, but I am having trouble understanding the response. Here is my code snippet: this.rezerwacjeFilteredByseaarchInput.sort(function (a, b) { if (a[5]===null) { // console.log(a[5]); return 1; } ...

Locating the declaration for my TypeScript/React module: Where to find it?

As someone who is completely new to frontend technologies, particularly react and typescript, I encountered an issue while attempting to use a react component from https://github.com/ckeditor/ckeditor5 I came across this example in the documentation: htt ...

Consistentize Column Titles in Uploaded Excel Spreadsheet

I have a friend who takes customer orders, and these customers are required to submit an excel sheet with specific fields such as item, description, brand, quantity, etc. However, the challenge arises when these sheets do not consistently use the same colu ...

Is it possible to incorporate a NodeJS library into my React project?

I'm currently working on a project with React Typescript. My goal is to update a fillable PDF using array values upon form submission in my react form. During my research, I came across this library: https://www.npmjs.com/package/pdffiller I'm ...

How can Typescript limit the global availability of exported items?

Imagine a TypeScript folder structure like this: index.ts login/ --index.ts --util.ts registration/ --index.ts --util.ts Is there a way to limit the exports (namespaces) of the modules to within the folders? For instance, if both util.ts modules e ...