Skip to content

Strange behavior when actions classes extends an reusable abstract class #484

Open
@tigredonorte

Description

@tigredonorte

This is a...

  • feature request
  • [ x ] bug report
  • usage question

What toolchain are you using for transpilation/bundling?

  • [ x ] angular/cli
  • Custom @ngTools/webpack
  • Raw ngc
  • SystemJS
  • Rollup
  • Other

Environment

NodeJS Version:6.10.3
Typescript Version:2.3.4
Angular Version:2.4.10
@angular-redux/store version:
@angular/cli version: 1.5.0
OS:windows

Expected Behaviour:

When class A and class C extends B, we expect output in console.log(this.constructor.name) in B class it's always 'A' (if we call a.method()) and 'C' if we call c.method.

Actual Behaviour:

if i call c.method(), it prints "A" (if a and c extends b).

Stack Trace/Error Message:

not necessary

Code

abstract class B{
     public abstract getName();

     @dispatch()
     public doAction(){
          console.log(this.getName(), this.constructor.name);
     }
}

class AAction extends B{
     public getName(){
          return 'FOO';
     }
}

class CAction extends B{
     public getName(){
          return 'Bar';
     }
}

var a = new AAction();
var b = new BAction();
a.doAction(); //it prints correctly "FOO", 'AAction'
b.doAction(); //it prints wrongly "FOO", 'AAction', the correct is "Bar", "BAction"

it only occurs in store folder. It not occurs in others folder..

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions