angular / angular/angular

Better Typing for `forwardRef` and `resolveForwardRef`

Ouverte
#11,638 3 commentaires 3 réactions 0 personnes assignées Voir sur GitHub
area: core breaking changes freq1: low P4 type: bug/fix
Langage dominant
TypeScript
Étoiles
101k
Forks
27.5k
Merge moyen
1 j 19 h
PR mergées (30 j)
288

Description

We have a fix but wanted to make sure a pull request for `forwardRef` would be accepted. It's marked as`@experimental`, are there any plans to change it?

**I'm submitting a ...** (check one with "x")

```
[x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
```

**Current behavior**
When using `forwardRef` and `resolveForwardRef`, types will not be tracked.

```
class MyType {}
let myForwardRef = forwardRef(() => MyType);
resolveForwardRef(myForwardRef) //=> any
```

**Expected behavior**

```
class MyType {}
let myForwardRef = forwardRef(() => MyType);
resolveForwardRef(myForwardRef) //=> MyType
```

**Reproduction of the problem**
Just import `forwardRef` and `resolveForwardRef` and observe the types in a supporting editor

**What is the motivation / use case for changing the behavior?**
To keep code type-safe and tooling effective

**Please tell us about your environment:**
MacOS Sierra 10.12, VSCode
- **Angular version:** 2.0.0-rc.7
- **Browser:** N/A
- **Language:** TypeScript 2.0.2
- **Node (for AoT issues):** N/A

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par importer `forwardRef` et `resolveForwardRef` dans un projet TypeScript 2.0.2 et observez leurs types inférés dans un éditeur adapté. C’est terminé lorsque l’exemple `forwardRef` se résout en `MyType` plutôt qu’en `any`, tout en préservant la sécurité de typage.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript
Domaine
frontend
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.