microsoft / microsoft/TypeScript

Arrow function generics are resolved

Open
#33,117 1 comment 1 reaction 1 assignee View on GitHub

@weswigham is already working on this.

Since Aug 28, 2019.

Needs Investigation
Dominant language
Go
Stars
111k
Forks
14.3k
Avg merge
2d 4h
Merged PRs (30d)
132

Description

TypeScript Version: 3.5.3

Search Terms: arrow function generic

Code

export const foo = <T extends keyof HTMLElementEventMap>(t: T): T => t;
export function bar<T extends keyof HTMLElementEventMap>(t: T): T {
  return t;
}

Expected behavior:

The d.ts file contains unresolved types for a list of strings for arrow function generics.

export declare const foo: <T extends keyof HTMLElementEventMap>(t: T) => T;
export declare function bar<T extends keyof HTMLElementEventMap>(t: T): T;

Actual behavior:

The d.ts file contains resolved types for a list of strings for arrow function generics.

export declare const foo: <T extends "waiting" | "error" | "abort" | "cancel" | "progress" | "ended" | "change" | "input" | "select" | "fullscreenchange" | "fullscreenerror" | "animationcancel" | "animationend" | "animationiteration" | "animationstart" | "auxclick" | "blur" | "canplay" | "canplaythrough" | "click" | "close" | "contextmenu" | "cuechange" | "dblclick" | "drag" | "dragend" | "dragenter" | "dragexit" | "dragleave" | "dragover" | "dragstart" | "drop" | "durationchange" | "emptied" | "focus" | "gotpointercapture" | "invalid" | "keydown" | "keypress" | "keyup" | "load" | "loadeddata" | "loadedmetadata" | "loadend" | "loadstart" | "lostpointercapture" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup" | "pause" | "play" | "playing" | "pointercancel" | "pointerdown" | "pointerenter" | "pointerleave" | "pointermove" | "pointerout" | "pointerover" | "pointerup" | "ratechange" | "reset" | "resize" | "scroll" | "securitypolicyviolation" | "seeked" | "seeking" | "selectionchange" | "selectstart" | "stalled" | "submit" | "suspend" | "timeupdate" | "toggle" | "touchcancel" | "touchend" | "touchmove" | "touchstart" | "transitioncancel" | "transitionend" | "transitionrun" | "transitionstart" | "volumechange" | "wheel" | "copy" | "cut" | "paste">(t: T) => T;
export declare function bar<T extends keyof HTMLElementEventMap>(t: T): T;

Playground Link: N/A — The issue exists in the d.ts file output.

Related Issues:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.