Búsqueda de sitios web

El Intellisense de Visual Studio a partir de JSDoc de TypeScript no funciona con funciones de flecha


Intellisense de Typescript funciona bien para esto:

class SampleClass {
    /**
     * Does stuff
     *
     * @param blah stuff needing done 
     */
    public doStuff(blah: string) {
    }
}

var sample = new SampleClass();
// intellisense works correctly and shows parameter description:
sample.doStuff("hello"); 

Sin embargo, cambiar a usar la flecha de grasa parece romper la IntelliSense de jsdoc (la firma del método todavía aparece, pero ninguna de las descripciones de jsdoc lo hace):

class SampleClass2 {
    /**
     * Does stuff
     *
     * @param blah stuff needing done 
     */
    public doStuff = (blah: string) => {
    }
}

var sample2 = new SampleClass2();
// intellisense gives the method signature still but no longer picks up any of the jsdoc descriptions:
sample2.doStuff("hello"); 

Estoy usando Visual Studio 2012 Actualización 4; TypeScript 0.9.5.

¿Es esto un error, o necesito usar una sintaxis diferente para los comentarios jsdoc?

Respuesta #1

Sinceramente, estoy muy confundido sobre por qué esto funciona en el TypeScript Playground.

Para que esto funcione en Visual Studio, la documentación de la función necesita estar en la propia expresión de la función:

class SampleClass2 {
    public doStuff =
        /**
         * Does stuff
         *
         * @param blah stuff needing done 
         */
    (blah: string) => {
    }
}

var sample2 = new SampleClass2();
sample2.doStuff("hello"); 

Respuesta #2

Estoy usando Visual Studio 2013, así que no puedo probar la configuración exacta que tienes, pero deberías obtener la sugerencia de tipos y la autocompletación en cualquiera de los dos ejemplos.

Captura de pantalla del playground de TypeScript con JSDoc...

Artículos relacionados