Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5.3.11 breaks Angular components using classes defined further in code #9818

Closed
kausters opened this issue Feb 11, 2020 · 5 comments
Closed

Comments

@kausters
Copy link

kausters commented Feb 11, 2020

Describe the bug
After upgrading from SB 5.3.10 to 5.3.12 my Angular 9 components started failing with an error: "Cannot access 'DropdownListItem' before initialization"

I found that the problem occured when I had a component that used this DropdownListItem but the DropdownListItem itself was defined in that same file, after the original class. Moving DropdownListItem to the top of the file solved the issue but that's not how we want to build our components.

So something like this (truncated):

@Component({
    selector: 'app-dropdown-list',
    templateUrl: './dropdown-list.component.html',
    styleUrls: ['./dropdown-list.component.scss']
})
export class DropdownListComponent implements OnInit {
    @Input() listItems: DropdownListItem[]

    constructor() {}

    ngOnInit() {}
}

export class DropdownListItem {
    public name: string
    public value: string | number

    constructor(name: string, value: string | number) {
        this.name = name
        this.value = value
    }
}

I found two things connected with this problem:

  1. Angular: Emit decorator metadata by default #9701 added emitDecoratorMetadata: true to TS compiler options
  2. ES2015 + emitDecoratorMetadata causes Cannot access before intialization angular/angular-cli#15077 that option on Angular causes the error I encountered
@kausters kausters changed the title 5.3.12 breaks components using classes defined further in code 5.3.12 breaks Angular components using classes defined further in code Feb 11, 2020
@kausters kausters changed the title 5.3.12 breaks Angular components using classes defined further in code 5.3.11 breaks Angular components using classes defined further in code Feb 11, 2020
@stale
Copy link

stale bot commented Mar 3, 2020

Hi everyone! Seems like there hasn't been much going on in this issue lately. If there are still questions, comments, or bugs, please feel free to continue the discussion. Unfortunately, we don't have time to get to every issue. We are always open to contributions so please send us a pull request if you would like to help. Inactive issues will be closed after 30 days. Thanks!

@stale stale bot added the inactive label Mar 3, 2020
@aloulouamine
Copy link

Hi,

Got the same issue. Is there a workaround to this issue ?

thx

@stale stale bot removed the inactive label Mar 9, 2020
@kausters
Copy link
Author

kausters commented Mar 9, 2020

Not that I know of. My company has frozen the Storybook version but that's it.

@stale
Copy link

stale bot commented Mar 31, 2020

Hi everyone! Seems like there hasn't been much going on in this issue lately. If there are still questions, comments, or bugs, please feel free to continue the discussion. Unfortunately, we don't have time to get to every issue. We are always open to contributions so please send us a pull request if you would like to help. Inactive issues will be closed after 30 days. Thanks!

@stale stale bot added the inactive label Mar 31, 2020
@stale
Copy link

stale bot commented Apr 30, 2020

Hey there, it's me again! I am going close this issue to help our maintainers focus on the current development roadmap instead. If the issue mentioned is still a concern, please open a new ticket and mention this old one. Cheers and thanks for using Storybook!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants