Skip to content

fix(compiler-cli): incorrect inferred type of for loop implicit variables#52732

Closed
crisbeto wants to merge 1 commit intoangular:mainfrom
crisbeto:52730/control-flow-var-types
Closed

fix(compiler-cli): incorrect inferred type of for loop implicit variables#52732
crisbeto wants to merge 1 commit intoangular:mainfrom
crisbeto:52730/control-flow-var-types

Conversation

@crisbeto
Copy link
Copy Markdown
Member

@crisbeto crisbeto commented Nov 9, 2023

Fixes that all implicit variables in @for loops were inferred to be numbers, even though most are actually boolean.

Note that I also had to work around a weird TypeScript behavior in tsDeclareVariable where usually we declare variables in the following format:

var _t1: <type> = null!;

This works in most cases, but if the type is a boolean, TypeScript infers the variable as never, instead of boolean. I've worked around it by adding an as boolean to the initializer.

Fixes #52730.

…bles

Fixes that all implicit variables in `@for` loops were inferred to be numbers, even though most are actually boolean.

Note that I also had to work around a weird TypeScript behavior in `tsDeclareVariable` where usually we declare variables in the following format:

```
var _t1: <type> = null!;
```

This works in most cases, but if the type is a `boolean`, TypeScript infers the variable as `never`, instead of `boolean`. I've worked around it by adding an `as boolean` to the initializer.

Fixes angular#52730.
@crisbeto crisbeto added action: review The PR is still awaiting reviews from at least one requested reviewer target: patch This PR is targeted for the next patch release area: compiler Issues related to `ngc`, Angular's template compiler labels Nov 9, 2023
@crisbeto crisbeto requested a review from atscott November 9, 2023 13:28
@ngbot ngbot bot modified the milestone: Backlog Nov 9, 2023
@JoostK JoostK removed the request for review from atscott November 9, 2023 15:39
@JoostK JoostK added action: merge The PR is ready for merge by the caretaker and removed action: review The PR is still awaiting reviews from at least one requested reviewer labels Nov 9, 2023
@jessicajaniuk
Copy link
Copy Markdown
Contributor

This PR was merged into the repository by commit 645447d.

jessicajaniuk pushed a commit that referenced this pull request Nov 9, 2023
…bles (#52732)

Fixes that all implicit variables in `@for` loops were inferred to be numbers, even though most are actually boolean.

Note that I also had to work around a weird TypeScript behavior in `tsDeclareVariable` where usually we declare variables in the following format:

```
var _t1: <type> = null!;
```

This works in most cases, but if the type is a `boolean`, TypeScript infers the variable as `never`, instead of `boolean`. I've worked around it by adding an `as boolean` to the initializer.

Fixes #52730.

PR Close #52732
@angular-automatic-lock-bot
Copy link
Copy Markdown

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Dec 10, 2023
ChellappanRajan pushed a commit to ChellappanRajan/angular that referenced this pull request Jan 23, 2024
…bles (angular#52732)

Fixes that all implicit variables in `@for` loops were inferred to be numbers, even though most are actually boolean.

Note that I also had to work around a weird TypeScript behavior in `tsDeclareVariable` where usually we declare variables in the following format:

```
var _t1: <type> = null!;
```

This works in most cases, but if the type is a `boolean`, TypeScript infers the variable as `never`, instead of `boolean`. I've worked around it by adding an `as boolean` to the initializer.

Fixes angular#52730.

PR Close angular#52732
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker area: compiler Issues related to `ngc`, Angular's template compiler target: patch This PR is targeted for the next patch release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compiler reports the variable $last inside the @for block as number when it is mapped into the Input/Output binding

3 participants