More examples of `infer`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- documentation
Línea de trabajo
Comienza en la sección de documentación de Conditional Types y revisa los ejemplos existentes de infer. Añade ejemplos que cubran la eliminación del primer elemento de un array, el análisis de template literals, la inferencia de caracteres individuales y la recursión; después, verifica que los ejemplos se rendericen correctamente y que los tipos resultantes indicados sean precisos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Documentation is lacking in examples of how to use infer in the Conditional Types section.
For example, one can use infer to unshift an array literal:
type Unshift<T extends any[]> = T extends [infer Head, ...infer Tail] ? Head : never;
type A = Unshift<['a','b','c']>
type A is literal 'a'.
Another useful example would be to demonstrate infer within a template to parse a string type:
type TSVersion = "4.1.2"
type ExtractSemver<Semver extends string> =
Semver extends `${infer Major}.${infer Minor}.${infer Patch}` ?
{ major: Major, minor: Minor, patch: Patch } : never
type TS = ExtractSemver<TSVersion>
type TS is literal { major: "4", minor: "1", patch : "2"}
Also useful would be to demonstrate the default of infer will be a single char, and to demonstrate recursion:
type NotEmptyString<S extends string> = S extends "" ? never : S;
type Reverse<S extends string> =
S extends "" ? S :
S extends `${infer B}${infer E}` ? `${Reverse<E>}${B}` : never;
type WorkItAndReverseIt = Reverse<"Foobar">;
type WorkItAndReverseIt is literal rabooF.
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.6k
- Forks
- 1.5k
- Merge medio
- 2 d 2 h
- PR fusionados (30 d)
- 7
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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.
Más de microsoft/TypeScript-Website
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
microsoft/TypeScript-Website#3611 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/TypeScript-Website#3607 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
microsoft/TypeScript-Website#3039 ·
-
@typescript/vfs emits an ExperimentalWarning on Node 26 during localStorage feature detection Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 30/100
microsoft/TypeScript-Website#3650 ·
-
CRITICAL: Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 15/100
microsoft/TypeScript-Website#3636 ·
Todos los issues de microsoft/TypeScript-Website
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
area:tools bug good first issue help wanted priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
newrelic-experimental/preflight#793 · 1 comentario ·
-
bug 🐞
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
[Bounty proposal] fix(web): memory insights count an evening memory on the next day ($25 proposed) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
BasedHardware/omi#15320 ·