microsoft / microsoft/TypeScript
typeof 'function' using with Exclude<T, Function>
Abierto
Nadie ha tomado este issue todavía.
Bug
Domain: check: Control Flow
Domain: Conditional Types
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 132
Descripción
TypeScript Version: 3.2.2
Search Terms: Generic typeof
Code
function f2<T>(v: Exclude<T, Function> | (() => T)): T {
if (typeof v === 'function') {
v = v() // error!
}
return v
}
Expected behavior:
No error, type v is just (() => T).
Actual behavior:
Line 3 report an error: Type '(() => T) | (Exclude<T, Function> & Function)' has no compatible call signatures.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el Playground Link proporcionado y reproduce el error en f2 usando TypeScript 3.2.2. Investiga cómo typeof 'function' reduce la unión que involucra Exclude<T, Function>; el trabajo estará terminado cuando v sea reconocido como invocable en esa rama sin el error indicado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 35/100