제네릭 클래스를 기반으로 제네릭 인터페이스를 정의하는 방법

요하네스

다른 인터페이스를 기반으로 새로운 증강 된 일반 인터페이스를 만들려고합니다. 기본 인터페이스는 객체가 가질 속성 ( root) 을 정의합니다 . 증강 유형은 동일한 속성을 가져야하지만 any대신 더 복잡한 객체를 얻습니다. 인터페이스 IStyleObj는 제네릭 유형이 제네릭 인터페이스로 전달되는 제네릭 클래스 내부에서 사용됩니다.

내 실험에서 이러한 오류가 발생하고 수정 방법을 모릅니다.

"IStyleObj<T>"
'T' is declared but its value is never read.ts(6133)

"Key in keyof"
A computed property name must be of type 'string', 'number', 'symbol', or 'any'.ts(2464)
Member '[K in keyof' implicitly has an 'any' type.ts(7008)

"... T"
Cannot find name 'T'.ts(2304)

"class: any"
'any' only refers to a type, but is being used as a value here.ts(2693)

이것은 내 현재 코드입니다.

// Child.ts
interface IStyles {
  root?: any
}

// Base.ts
interface IStyleObj<T> {
  [K in keyof T]: {
    class: any
    style: any
  }
}

export default class Base<IStyles = {}> {
  get styles (): IStyleObj<IStyles> {
    // ...
  }
}
티티 안 세르 니코 바-드라고 미르

인터페이스는 매핑 된 유형이 될 수 없으며 유형 별칭 만 가능합니다. 이것은 작동합니다 :

// Child.ts
interface IStyles {
  root?: any
}

// Base.ts
type IStyleObj<T> = {
  [K in keyof T]: {
    class: any
    style: any
  }
}

export default class Base<IStyles = {}> {
  get styles (): IStyleObj<IStyles> {
    return null!
  }
}

놀이터 링크

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

제네릭 클래스를 제네릭으로 확장하는 방법

분류에서Dev

제네릭 형식의 클래스를 반환하는 방법

분류에서Dev

C ++에서 제네릭 기본 클래스를 초기화하는 방법

분류에서Dev

인터페이스를 제네릭으로 사용하여 변수를 선언하는 방법

분류에서Dev

제네릭 인터페이스를 구현하는 클래스의 제네릭 유형 정의 쿼리

분류에서Dev

제네릭으로 제네릭 클래스의 클래스 유형을 반환하는 방법은 무엇입니까?

분류에서Dev

제네릭 유형으로 인터페이스를 구현하는 방법은 무엇입니까?

분류에서Dev

제네릭 / 무의미한 방식으로 제네릭 메서드를 구현하는 가장 좋은 방법

분류에서Dev

C #에서 제네릭 형식으로 인터페이스를 구현하는 클래스 팩토리?

분류에서Dev

유형이 제네릭 기본 클래스를 구현하는지 확인하는 방법

분류에서Dev

Java 인터페이스에서 제네릭의 제네릭을 사용하는 방법

분류에서Dev

제네릭 구조체 내에서 const 클로저를 정의하는 방법

분류에서Dev

제네릭 구조체 내에서 const 클로저를 정의하는 방법

분류에서Dev

제네릭 유형의 클래스를 얻는 방법은 동일한 제네릭 유형으로 다른 배열을 허용합니까?

분류에서Dev

개체를 하위 클래스에 대한 제네릭 형식으로 캐스팅하는 방법?

분류에서Dev

TypeScript에서 클래스 제네릭을 선택적으로 만드는 방법

분류에서Dev

ANGULAR : 제네릭을 사용하여 추상 클래스를 두 수준으로 확장하는 방법

분류에서Dev

Newexpression을 기반으로 익명 형식의 제네릭 클래스 인스턴스를 반환합니다.

분류에서Dev

제네릭의 확장으로 인터페이스 작성

분류에서Dev

제네릭을 사용하여 클래스를 인터페이스로 변환 할 수 없습니다.

분류에서Dev

추상 제네릭 클래스에서 파생 된 클래스가 자신을 제네릭 매개 변수로 사용하는지 확인하는 방법

분류에서Dev

제네릭과 Varargs-서브 클래스로 작업하는 방법

분류에서Dev

Laravel-제네릭 클래스를 노출하여 기본 로직을 추상화하는 방법

분류에서Dev

컬렉션 제네릭 클래스를 확장하는 제네릭 클래스

분류에서Dev

Swift에서 제네릭 유형 초기화를 정의하는 방법

분류에서Dev

인터페이스 제네릭의 개체로 C # 캐스팅

분류에서Dev

클래스 토큰을 사용하여 제네릭 유형의 중첩 제네릭을 유지하는 방법

분류에서Dev

제네릭 유형의 인수없이 제네릭 함수를 정의하는 방법은 무엇입니까?

분류에서Dev

main.cpp의 제네릭 클래스에 대한 operator> 오버로드 방법

Related 관련 기사

  1. 1

    제네릭 클래스를 제네릭으로 확장하는 방법

  2. 2

    제네릭 형식의 클래스를 반환하는 방법

  3. 3

    C ++에서 제네릭 기본 클래스를 초기화하는 방법

  4. 4

    인터페이스를 제네릭으로 사용하여 변수를 선언하는 방법

  5. 5

    제네릭 인터페이스를 구현하는 클래스의 제네릭 유형 정의 쿼리

  6. 6

    제네릭으로 제네릭 클래스의 클래스 유형을 반환하는 방법은 무엇입니까?

  7. 7

    제네릭 유형으로 인터페이스를 구현하는 방법은 무엇입니까?

  8. 8

    제네릭 / 무의미한 방식으로 제네릭 메서드를 구현하는 가장 좋은 방법

  9. 9

    C #에서 제네릭 형식으로 인터페이스를 구현하는 클래스 팩토리?

  10. 10

    유형이 제네릭 기본 클래스를 구현하는지 확인하는 방법

  11. 11

    Java 인터페이스에서 제네릭의 제네릭을 사용하는 방법

  12. 12

    제네릭 구조체 내에서 const 클로저를 정의하는 방법

  13. 13

    제네릭 구조체 내에서 const 클로저를 정의하는 방법

  14. 14

    제네릭 유형의 클래스를 얻는 방법은 동일한 제네릭 유형으로 다른 배열을 허용합니까?

  15. 15

    개체를 하위 클래스에 대한 제네릭 형식으로 캐스팅하는 방법?

  16. 16

    TypeScript에서 클래스 제네릭을 선택적으로 만드는 방법

  17. 17

    ANGULAR : 제네릭을 사용하여 추상 클래스를 두 수준으로 확장하는 방법

  18. 18

    Newexpression을 기반으로 익명 형식의 제네릭 클래스 인스턴스를 반환합니다.

  19. 19

    제네릭의 확장으로 인터페이스 작성

  20. 20

    제네릭을 사용하여 클래스를 인터페이스로 변환 할 수 없습니다.

  21. 21

    추상 제네릭 클래스에서 파생 된 클래스가 자신을 제네릭 매개 변수로 사용하는지 확인하는 방법

  22. 22

    제네릭과 Varargs-서브 클래스로 작업하는 방법

  23. 23

    Laravel-제네릭 클래스를 노출하여 기본 로직을 추상화하는 방법

  24. 24

    컬렉션 제네릭 클래스를 확장하는 제네릭 클래스

  25. 25

    Swift에서 제네릭 유형 초기화를 정의하는 방법

  26. 26

    인터페이스 제네릭의 개체로 C # 캐스팅

  27. 27

    클래스 토큰을 사용하여 제네릭 유형의 중첩 제네릭을 유지하는 방법

  28. 28

    제네릭 유형의 인수없이 제네릭 함수를 정의하는 방법은 무엇입니까?

  29. 29

    main.cpp의 제네릭 클래스에 대한 operator> 오버로드 방법

뜨겁다태그

보관