microsoft / microsoft/TypeScript
Typescript ESType definition improvements
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 132
Descripción
Hi,
The following types can be improved on to be more correct in the lib.es5.d.ts file.
These type improve typically deal with the cases on of the arrays items keys has subset of the other keys, in this case the results is the common subset, with mismatching fields made optional.
This requires functionality in typelevel-ts, however, that is only based on keys.
new methods should do and K in keyof T, T[K] extends S[K] ? K : never
// Improved more correctly helper method.
type ObjectOmit<T extends Record<string,any>, O extends Record<string,any>, KeyOfO keyof O> = Pick<T, {
[K in keyof T] : K extends KeyOfO ?
T[K] extends O[K] | undefined ? never : K // may need a two way extends comparison here.
: K
}[keyof T]
export function ObjectAssign<T extends Record<string,any>, U extends Record<string,any>>(target: T, source: U):
ObjectOverwrite<T, U>
{
return Object.assign(target, source);
}
export function ArrayConcat<A>(arrayA: A [] , arrayB : A []) : A[]
export function ArrayConcat<B, A extends B>(arrayA: A [], arrayB : B []) : B & Partial<ObjectOmit<A, keyof B>>[]
export function ArrayConcat<A, B extends A>(arrayA: A [], arrayB : B []) : A & Partial<ObjectOmit<B, keyof A>>[]
{
return arrayA.concat(arrayB) as any
}
export function FilterDefined<T>(items : Array<T> | undefined) : NonNullable<T> []
{
if (items)
return items.filter(f => f != undefined) as NonNullable<T> [];
else
return [];
}
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 leyendo lib.es5.d.ts y la funcionalidad basada en claves de typelevel-ts mencionada en el issue. Revisa las firmas propuestas de ObjectAssign, ArrayConcat y FilterDefined y verifica después que las declaraciones gestionen las claves comunes, las discrepancias opcionales y el filtrado de undefined según lo previsto.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- developer-experience
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100