Skip to content

[Bug] type error with typescript 4.8 #17581

@AviVahl

Description

@AviVahl

Version

5.3.3

Link to Minimal Reproduction

No response

Steps to Reproduce

mkdir echarts-types-check
cd echarts-types-check
npm i echarts typescript
npx tsc --init --skipLibCheck false
echo "import * as echarts from 'echarts'; console.log(echarts)" > test.ts
npx tsc --noEmit

Current Behavior

Current .d.ts is incompatible with newly released typescript 4.8.2:

ode_modules/echarts/types/dist/echarts.d.ts:2872:117 - error TS2344: Type 'ExtraStateOption' does not satisfy the constraint 'StatesMixinBase'.

2872 interface BaseBarSeriesOption<StateOption, ExtraStateOption = DefaultStatesMixin> extends SeriesOption<StateOption, ExtraStateOption>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin {
                                                                                                                         ~~~~~~~~~~~~~~~~

  node_modules/echarts/types/dist/echarts.d.ts:2872:44
    2872 interface BaseBarSeriesOption<StateOption, ExtraStateOption = DefaultStatesMixin> extends SeriesOption<StateOption, ExtraStateOption>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin {
                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    This type parameter might need an `extends StatesMixinBase` constraint.

node_modules/echarts/types/dist/echarts.d.ts:5743:49 - error TS2344: Type 'Props' does not satisfy the constraint 'ElementProps'.

5743 declare function updateProps<Props>(el: Element<Props>, props: Props, animatableModel?: Model<AnimationOptionMixin>, dataIndex?: AnimateOrSetPropsOption['dataIndex'] | AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption, cb?: AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption['during'], during?: AnimateOrSetPropsOption['during']): void;
                                                     ~~~~~

  node_modules/echarts/types/dist/echarts.d.ts:5743:30
    5743 declare function updateProps<Props>(el: Element<Props>, props: Props, animatableModel?: Model<AnimationOptionMixin>, dataIndex?: AnimateOrSetPropsOption['dataIndex'] | AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption, cb?: AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption['during'], during?: AnimateOrSetPropsOption['during']): void;
                                      ~~~~~
    This type parameter might need an `extends ElementProps` constraint.

node_modules/echarts/types/dist/echarts.d.ts:5753:47 - error TS2344: Type 'Props' does not satisfy the constraint 'ElementProps'.

5753 declare function initProps<Props>(el: Element<Props>, props: Props, animatableModel?: Model<AnimationOptionMixin>, dataIndex?: AnimateOrSetPropsOption['dataIndex'] | AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption, cb?: AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption['during'], during?: AnimateOrSetPropsOption['during']): void;
                                                   ~~~~~

  node_modules/echarts/types/dist/echarts.d.ts:5753:28
    5753 declare function initProps<Props>(el: Element<Props>, props: Props, animatableModel?: Model<AnimationOptionMixin>, dataIndex?: AnimateOrSetPropsOption['dataIndex'] | AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption, cb?: AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption['during'], during?: AnimateOrSetPropsOption['during']): void;
                                    ~~~~~
    This type parameter might need an `extends ElementProps` constraint.


Found 3 errors in the same file, starting at: node_modules/echarts/types/dist/echarts.d.ts:2872

Expected Behavior

Type checking should pass.

Environment

- OS: Fedora 38
- Browser: Irrelevant
- Framework: Irrelevant

Any additional comments?

Probably a simple matter of adding several extends X to several generics.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions