``There is an interface that is extending another interface in

class One {
  controls: { [key: string]: number };
}

interface Two<T> extends One {
  controls: { [key in keyof T]: number }
}

An error is showing:

TS2430: Interface 'Two' incorrectly extends interface 'One'. Types of property 'controls' are incompatible. Type '{ [key in keyof T]: number; }' is not assignable to type '{ [key: string]: number; }'

In TypeScript playground (click), everything appears to be working correctly. What could be the issue?

TypeScript version: 2.4.2

Answer №1

In version 2.4, there was an issue that has since been resolved in version 2.5. For more information, you can refer to the GitHub page. Essentially, in version 2.4, certain actions were not permitted which were then explicitly allowed in version 2.5:

Types mapped over keyof T are now considered subtypes of types with string index signatures

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

Tips for selecting objects based on property in Typescript?

Consider this scenario: import { Action, AnyAction } from 'redux'; // interface Action<Type> { type: Type } and type AnyAction = Action<any> export type FilterActionByType< A extends AnyAction, ActionType extends string > ...

NGXS: Issue with passing objects to "setState" occurs when any of the patched inner fields is nullable or undefined

In my Angular components, I have created a class that is responsible for storing the state: export class MyStateModel { subState1: SubStateModel1; substate2: SubStateModel2; } This class has simple subclasses: export class SubStateModel1 { someField ...

Accessing an Array from a service method in Angular and passing it to my main component

Within my api-service.ts, I have an array that holds some data. public getData():Observable<any[]> { return Observable.toString[ObsResult]; } Now, in the main component, I am attempting to call the getData() method to render the data in ...

Utilize a single function across multiple React components to interact with the Redux store, promoting code reusability and

Currently facing a dilemma. Here is a snippet of code that updates data in the redux store from a function, and it functions smoothly without any issues. const handleCBLabelText = (position: string, text: string) => { dispatch({ type: ' ...

Click to Rotate Angular Chevron

Is it possible to animate the rotation of a chevron icon from left-facing to right-facing using Angular? CSS: .rotate-chevron { transition: .1s linear; } HTML: <button [class.button-open]="!slideOpen" [class.button-close]="slideOpe ...

The error message "Type 'string[]' does not match type 'string' in NestJS" indicates a type mismatch between a string array and a single

I am attempting to download a file by utilizing an external API in NestJS. Here is the snippet of code from my service: import { Injectable } from '@nestjs/common'; import * as fs from "fs"; import * as axios from "axios"; @Injectable() export cl ...

How can I determine the type of a component in Vue.js?

I'm currently developing a vuejs application using typescript and my goal is to leverage the available typings as much as possible. For the most part, the typings and type inference work smoothly without any issues. However, in certain parts of my c ...

Unable to bring in Angular2 bootstrap function

I am currently setting up a basic Angular 2 (beta 2) app using TypeScript. I have the code for app.ts file taken from Angular's most recent setup guide import {Component, View, bootstrap} from 'angular2/angular2'; @Component({ selector: ...

Adding a fresh element to an array in Angular 4 using an observable

I am currently working on a page that showcases a list of locations, with the ability to click on each location and display the corresponding assets. Here is how I have structured the template: <li *ngFor="let location of locations" (click)="se ...

Unit testing in Angular 4 with Jasmine Spy: The expectation was for 'New text' but received undefined

I have a simple function in my app.component.ts that is meant to modify a parameter, and I am trying to test this function using a spy. However, for some reason, my changeText function always returns undefined. Can you help me identify what I might be doin ...

Comparing Javascript's GroupBy function to the LINQ GroupBy in C#

After reviewing the question linked below, we have a follow-up inquiry: Javascript Equivalent to C# LINQ Select We are currently working with Angular 2 and TypeScript. In our scenario, we have an array of objects where each object contains a property na ...

Error: The @IsEmpty property decorator in ES2017 Nest JS is encountering issues when used as an expression. It seems that the signature of the decorator cannot be resolved, resulting in

Hey everyone, I'm fairly new to Nest JS and I'm currently working on adding a DTO validator. However, when I attempt to use functions like isNotEmpty or Max, the compiler throws an error at me: Unable to resolve signature of property decorator ...

Search for the enumeration type of the given string does not have an assigned index signature

I am working with a string enum where each value is associated with a display name as shown below: enum MyEnum { key1 = 'one', key2 = 'two', key3 = 'three', } const myKey: MyEnum = 'two' as MyEnum; // The val ...

The function 'transformArticles' is not recognized as a property of the object 'Article'

I'm encountering an issue with Typescript that I need help understanding. In my code, I have a route where I am importing a class called Article like this: import { Request, Response } from "express"; const appRoot = require("app-root-path"); import ...

Access-Control-Allow-Origin header not being sent by ExpressJS

In the midst of my project, I find myself needing an angular web application to connect with a node/express backend. Despite trying to implement Cors for this purpose, the express server refuses to send the Access-Control-Allow-Origin header. I am perplexe ...

What is the best way to change a Date stored in an array to a string format? [angular4]

Presented here is an array with the data labeled dateInterview:Date: public notes: Array<{ idAgreement: string, note: string, dateInterview: Date }> = []; My goal is to send this array to the server where all values of dateInterview need to be co ...

I have successfully set up micro-cors on my system, and as I tried to compile, I received the following outcome

While working on the Next.js Stripe project, I ran into an unexpected problem that I need help with. ./src/pages/api/webhooks.ts:3:18 Type error: Could not find a declaration file for module 'micro-cors'. 'E:/Project/longlifecoin/node_module ...

Unpacking a props object results in an undefined value

I've been struggling to set up a data-grid in react because I'm facing issues with accessing the data from my props. Whenever I try to access or destructure the prop, it shows up as "undefined" in my console. This problem only arises when the p ...

Troubleshooting the issue of React forms hook not functioning properly with Material UI Select input

How the Textfield below should load: https://i.sstatic.net/29Sz4.png How it actually loads: https://i.sstatic.net/TdPYM.png My Select component, created using Material UI and React form hook, is not loading the default value as expected. The component ...

Mastering the integration of NestJS with Redis for microservices

Currently, I am diving into the world of nestjs microservices. I am curious, what commands are available for me to use? const pattern = { cmd: 'get' }; this.client.send<any>(pattern, data) Additionally, how do I go about retrieving data ...