Pregunta

Estoy tratando de comprender el grado de inferencia de tipos que funciona en TypeScript.En el siguiente ejemplo de código, ¿por qué? foola implementación de baz.esplode ¿válido?Tengo entendido que un método vacío coincide void.

interface bar {
    horace: number;
}

interface baz {
    esplode: (string, number) => bool;
}

interface bazzer extends bar, baz { }

var foo: bazzer = {
    horace: 12,
    esplode: function () { }
}

var x = foo.esplode('crackers', 2);

¡Gracias!

¿Fue útil?

Solución

¡Gracias por echar un vistazo!

En realidad, eso es un error.Cuando una función se escribe contextualmente, debemos tratarla como si existiera una anotación de tipo de retorno que represente el tipo de retorno deseado (según la sección 4.9 de la especificación del idioma), por lo que tiene razón en que debería haber un error.

Ya tengo una solución para esto, pero ¿pueden presentar un error en el sitio de CodePlex para que nuestro equipo pueda rastrearlo?Puedo enviar la solución a nuestra rama de desarrollo esta tarde.

¡Gracias de nuevo!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top