microsoft / microsoft/node-api-dotnet

C# records are translated to invalid TypeScript types because of the `<Clone>$` member

Abierto
#458 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
C#
Estrellas
783
Forks
80
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Given C# code link this:

public class TestClass { public TestRecord Hello() => new TestRecord("x"); }

public record TestRecord(string Value);

... produces TS typing like this:

		export class TestRecord {
			constructor(Value: string);
			Value: string;
			ToString(): string;
			GetHashCode(): number;
			Equals(obj: unknown | undefined): boolean;
			Equals(other: NodeDotNetInterop.TestRecord | undefined): boolean;
			<Clone>$(): NodeDotNetInterop.TestRecord;
			Deconstruct(): { Value: string };
		}

... which is invalid TypeScript: compile error at the <Clone>$() line is "Unexpected token. A constructor, method, accessor, or property was expected".

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza reproduciendo el ejemplo de record de C# proporcionado e inspecciona la ruta de generación de tipos que emite la declaración de TestRecord. La corrección estará terminada cuando el TypeScript generado no contenga ningún miembro $ no válido y compile correctamente.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp, typescript
Área
tooling
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.