Transform normal typescript conditionals into ternary expressions

I'm trying to simplify the following if statement into a ternary statement. The challenge is that the value of group needs to be based on the value of coverageLineId.

let group = (coverageLineId == 1) ? this.medicalBenefitsGroupsView.find((x) => x.value === groupValue)
            : (coverageLineId == 2) ? this.dentalBenefitsGroupsView.find((x) => x.value === groupValue)
            : (coverageLineId == 3) ? this.visionBenefitsGroupsView.find((x) => x.value === groupValue) : undefined;

Answer №1

If you're looking to simplify it further, you can use the following approach:

let group = this[["", "medical", "dental", "vision"][coverageLineId] + "BenefitsGroupsView"].find((x) => x.value === groupValue);

Alternatively, I would personally go with the following method:

let view;
switch (coverageLineId) {
    case 1:
        view = this.medicalBenefitsGroupsView; break;
    case 2:
        view = this.dentalBenefitsGroupsView; break;
    case 3:
        view = this.visionBenefitsGroupsView; break;
}
let group = view.find((x) => x.value === groupValue);

Answer №2

If you're looking to find a specific group within different benefit views based on the coverage line ID and group value, you can utilize the following code snippet:

let group;

group = coverageLineId == 1 ? this.medicalBenefitsGroupsView.find((x) => x.value === groupValue) :
        coverageLineId == 2 ? this.dentalBenefitsGroupsView.find((x) => x.value === groupValue) :
        coverageLineId == 3 ? this.visionBenefitsGroupsView.find((x) => x.value === groupValue) : undefined;

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

Transitioning menus in Ionic 2

I followed the instructions in the Ionic 2 menu documentation and tried to display the menu in a specific way: https://i.sstatic.net/zzm8f.png My intention was to have the menu displayed below the content page while keeping the menu button visible. Howe ...

The specified property cannot be found on the Window type and the globalThis typeof

I encountered an error in my Electron-React-Typescript app that reads: Property 'api' does not exist on type 'Window & typeof globalThis'. window.api.send('open-type-A-window', ''); The issue seems to be related ...

When intercepted, the HttpRequest is being canceled

Solution Needed for Request Cancellation Issue Encountering a problem with the usage of HttpInterceptor to include the Authorize header in all HTTP requests sent to AWS API Gateway. The issue arises as all these requests are getting cancelled when interce ...

Issue with integrating React, Material UI, Typescript, Webpack, and server-side rendering (SSR

I encountered an issue with my server-side rendered app when I tried to integrate Material UI into it. Here is how my directory structure looks: app/ build/ * This directory is generated by webpack server_bundle.js public/ ...

What are the steps to set up tsline in settings.json file?

Currently utilizing visual studio code Upon searching for the settings.json file, the contents appear as follows: { "liveServer.settings.donotVerifyTags": true, "liveServer.settings.donotShowInfoMsg": true, "javascript ...

Typescript and Visual Studio Code Issue: Module "myimage.png" Not Found

I am encountering an issue where VS Code is complaining about not being able to find a module when trying to import an image from an assets directory within my project. Despite the fact that the image import works fine, I keep receiving the error message: ...

Tips on maintaining consistent language between two Angular components for a father and son relationship

I am facing an issue with language selection in my Angular project. I have two components, home.components (father) and room.component.ts (son), which support both English and Spanish languages. When I switch the language in the room component and then na ...

The property of userNm is undefined and cannot be set

When attempting to retrieve a value from the database and store it in a variable, an error is encountered: core.js:6014 ERROR Error: Uncaught (in promise): TypeError: Cannot set property 'userNm' of undefined TypeError: Cannot set property &apos ...

Organize items within an array based on dual properties rather than a single one

Here is an array of objects that I would like to group based on certain keys (JSON format): [ { "name": "john", "lastName": "doe", "gender": "male" }, { "name": &qu ...

Expanding and relocating word cloud/tag chartJS in TSX progress

I recently incorporated a word cloud using this library: [https://www.npmjs.com/package/chartjs-chart-wordcloud] into my tsx project. The word cloud appears to be working well overall. In my implementation, I have a useEffect hook for the chart, which shou ...

Creating a see-through effect in Three.js with React Fiber

I'm currently working with react fiber and struggling to make the background of my child scene transparent. Below is my root component containing the main Canvas element: export const Splash = () => { const { intensity, distance, colo ...

Is there a way to simulate the @Attribute decorator string provider in an ng2 unit test?

Struggling with unit testing a component and facing a hurdle. Unsure how to mock the functionality of the @Attribute decorator in my test. Error: No provider for String! @Component({...}) export class MyComponent { constructor(@Attribute("handle") pr ...

Create a function that takes two arrays as input and assigns variables to store the matching and non-matching elements between the two arrays

Definition of Interface - interface I { name: string; age: number; size?: string; } Arrays Initialization - let firstArrayMatches: I[] = []; let firstArrayUnmatches: I[] = []; let secondArrayMatches: I[] = []; let secondArrayUnmatches: I[] = []; I ...

Using Typescript to read data from a file and returning an object that is undefined

I'm attempting to extract data from a file that contains the following snippet: const config = { appName: 'my app', }; If I log the variable containing this data, it shows up as expected: const config = { appName: 'my app', ...

TS2345 Error: Cannot assign type 'string | null' to type 'number' for the parameter

Encountered an error while compiling and running the code in my Angular application: Error TS2345: Argument of type 'string | null' cannot be assigned to a parameter of type 'number'. Type 'null' is not assignable to type &ap ...

Concerns regarding Zod Schema Enhancements and Conditional Logic in TypeScript

I'm currently developing a robust Zod validation schema for an input field that handles product names. This schema needs to be able to adapt to various validation requirements, such as minimum/maximum length and the inclusion of special characters. B ...

Using TypeScript with React: Specifying a type when calling a React component

How should a type be passed into a component call? Within this scenario, the render prop APICall is utilizing a type parameter named MobileSplashReturn. Although this example is functional, it seems to be causing issues with prettier, indicating that it m ...

Adjust the input width dynamically in Angular

Looking to dynamically adjust the width of an input field and ensure that the suffix "meters (m)" sticks close to the entered number. Additionally, I want to pass a specific value to the input using `value="something"`, which then should expand the input w ...

Determine rest parameters based on the initial argument

Struggling to generate a solution that infers the arguments for an ErrorMessage based on the provided code input. ./errorCodes.ts export enum ErrorCodes { ErrorCode1, ErrorCode2, ErrorCode3 } ./errorMessages.ts export const ErrorMessages = { [Err ...

Newest version of Angular cli encounters issues when trying to initiate a new application in Windows

Attempting to create a new Angular app on my Windows 10 machine using the command ng new myapp (cli version 9.0.1) with Angular v9 and Node version v12.15.0. I have already tried several solutions from Stack Overflow, including: Uninstalling Angular CLI ...