Is there a variable name escaping feature in TypeScript similar to the backticks in Scala for literal identifiers?

Is there a feature in TypeScript similar to Scala's backticks for escaping variable names with literal identifiers:

`0029-escaping-illegal-typescript-literal`

To learn more about Scala's explanation, visit Need clarification on Scala literal identifiers (backticks)

Answer №1

If you're looking for the specifications, check them out on this link

Section 2.2.2 gives you all the details

The PropertyName production from the ECMAScript grammar is displayed below:

  PropertyName:    LiteralPropertyName    ComputedPropertyName

  LiteralPropertyName:    IdentifierName    StringLiteral    NumericLiteral

  ComputedPropertyName:    [ AssignmentExpression ]

A property name can be an identifier (even a reserved word), a string literal, a numeric literal, or a computed property name. String literals are useful for naming properties with spaces. Numeric literal property names are like string literals with a number as the representation.

This also covers string literals.

To declare a property as a string literal:

class MyClass {
  "name" = "John";
}

You can access it using square brackets

let myObj = new MyClass()
let nameValue = myObj["name"]

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

When utilizing Typescript to develop a form, it is essential to ensure that the operand of a 'delete' operator is optional, as indicated by error code ts(279

Can someone help me understand why I am encountering this error? I am currently working on a form for users to submit their email address. export const register = createAsyncThunk< User, RegisterProps, { rejectValue: ValidationErrors; } > ...

Is Angular File API Support Compatible with HTML5?

When checking for HTML5 File API browser support in my code: private hasHtml5FileApiSupport; constructor(@Optional() @Inject(DOCUMENT) document: Document) { const w = document.defaultView; this.hasHtml5FileApiSupport = w.File && w.FileReader & ...

The Mui datepicker displays the day and month in reverse order

Do you have trouble with date search filter using the mui datepicker component? It seems that when entering a date in the input and clicking on search, the day gets swapped with the month. For instance, if you input 03/05/2022, it returns Sat Mar 05 2022 ...

PrismaClient is currently incompatible with this browser environment and has been optimized for use in an unknown browser when performing updates

While attempting to update a single field in my database using server-actions and tanstackQuery, I encountered the following error message: Error: PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in ...

In Ionic 2, any modifications made to the data model will only be reflected in the user interface after there is

Q) Why does my data seem to magically appear on the UI after interacting with it, even though I have made changes in the backend? For instance, when fetching and updating data bound to a list, such as: this._LocalStorageService.getClients().then( (data ...

Is it possible to drag the div container in HTML to resize its width from both left to right and right to left?

After posing my initial inquiry, I have devised a resizing function that allows for the expansion of a div's width. When pulling the right edge of the div to resize its width from left to right, is it possible to adjust the direction or how to resize ...

Gson is unable to convert the class object

I have a class called Message that I need to convert into JSON using the Gson library. However, I am encountering a StackOverflow Exception. Below is my Message class: package models.Notifications import models.Notifications.MessageStatus._ import models. ...

Typescript monorepo facing issues with module resolution in Next.js projects

In my monorepo with yarn workspaces, I have 2 Next.js projects set up. apps ┣ app-1 ┗ app-2 The problem arises when app-1 needs to import components from app-2. I add app-2 as a dependency in the app-1 project and configure the path in app-1's ...

React Native (or React) utilizes separate TypeScript modules to detect and respond to style adjustments for dark mode

Objective: Add a dark mode feature to a react native application. A brief overview of the system: File structure: Profile.ts ProfileCss.ts constants.ts In my app, I've organized styles in separate .ts files and exported them as modules to keep them ...

The updated value in useState keeps reverting to its original value

I am currently developing an ecommerce website using Next.js. In the product grid section, I have implemented a filter option that enables users to select a specific category. However, I am facing challenges with updating the products variable when I try t ...

Is it recommended to incorporate TypeScript throughout all components of the MEAN stack development?

My decision to build my web application using the MEAN stack was primarily based on the use of JavaScript throughout all layers. The idea of having one language for everything seemed appealing at first. However, I recently discovered TypeScript and was int ...

Contact the help desk and receive information that is currently unknown

There are a few issues that I'm struggling to resolve. I am utilizing SwaggerService to fetch data, but the response is coming back as undefined. import {SwaggerService} from '../../services/swagger.service'; export class TestComponent im ...

Is it possible for a conditional type in TypeScript to be based on its own value?

Is it possible to use this type in TypeScript? type Person = { who: string; } type Person = Person.who === "me" ? Person & Me : Person; ...

Passing a generic type as a parameter in a generic class in TypeScript

TypeScript: I have a method in the DataProvider class called getTableData: public static getTableData<T extends DataObject>(type: { new(): T}): Array<T> { ... } Everything works fine when I use it like this: let speakers = DataProvider.getT ...

What is the reason behind TypeScript interfaces lacking support for index signatures compared to type aliases?

Having a type with a string index signature: declare var result: { [key: string]: number; }; Trying to assign an interface to the type results in an error: interface IData { a: number; b: number; } declare var data: IData; result = data; // Error: T ...

I am struggling to understand how to work with constrained generic functions

function calculateMinimumLength<T extends {length : number}>(arg1: T, arg2: T) : T { if (arg1.length >= arg2.length) { return arg2; } else { return arg1; } } let str = "Hello world"; const result0 = calculateMinimumLe ...

The Function-supported Operation is having trouble implementing a modification related to Geohash/Geopoint - the Object Type requires a String format

Summary: My function-based Action that tries to set a GeoPoint as a Geohash property is failing with an error suggesting it was anticipating a string. I have an Object Type with a String property that has been designated as a Geohash in the property edito ...

When trying to update a Mobx store observable from within itself, you may encounter an error message stating "Unable to access property of <observable> as it is undefined."

Although I am aware of similar issues that have been discussed before, I couldn't find a solution to my specific problem after reviewing many of them. Let me explain the situation: In my scenario, I need my ReportStore to retrieve data from the serve ...

The attribute 'forEach' is not recognized on the data type 'string | string[]'

I'm experiencing an issue with the following code snippet: @Where( ['owner', 'Manager', 'Email', 'productEmail', 'Region'], (keys: string[], values: unknown) => { const query = {}; ...

struggling with typing an object in react typescript - Element is assumed to have an 'any' type due to its type

Having trouble with the code snippet below: // if I remove the `any` below it breaks. const teams: any = { liverpool: <Liverpool />, manUtd: <ManUtd />, arsenal: <Arsenal />, }; export const TeamCrest = ({ team }: { team: ke ...