Obtener JavaScript IntelliSense en Visual Studio

Al usar Visual Studio 2019 y versiones posteriores para desarrollar complementos de Office, puede usar JSDoc para habilitar IntelliSense para las variables, objetos, parámetros y valores devueltos de JavaScript. En este artículo se proporciona información general sobre JSDoc y cómo se puede usar para crear IntelliSense en Visual Studio. Para obtener más información, vea JavaScript IntelliSense y Compatibilidad de JSDoc en JavaScript.

Definiciones de tipo de Office.js

Necesita especificar las definiciones de los tipos en Office.js para Visual Studio. Para ello, puede:

  • Tener una copia local de los archivos de Office.js en una carpeta de la solución llamada \Office\1\. Las plantillas de proyecto del complemento de Office en Visual Studio agregan esta copia local al crear un proyecto de complemento.

  • Para usar una versión en línea de Office.js, agregue un archivo tsconfig.json al directorio raíz del proyecto de aplicación web en la solución del complemento. En el archivo necesita incluir el contenido siguiente.

        {
            "compilerOptions": {
                "allowJs": true,            // These settings apply to JavaScript files also.
                "noEmit":  true             // Do not compile the JS (or TS) files in this project.
            },
            "exclude": [
                "node_modules",             // Don't include any JavaScript found under "node_modules".
                "Scripts/Office/1"          // Suppress loading all the JavaScript files from the Office NuGet package.
            ],
            "typeAcquisition": {
                "enable": true,             // Enable automatic fetching of type definitions for detected JavaScript libraries.
                "include": [ "office-js" ]  // Ensure that the "Office-js" type definition is fetched.
            }
        }
    

Sintaxis de JSDoc

La técnica básica es preceder la variable (o el parámetro, etc.) con un comentario que identifique su tipo de datos. Esto permite a IntelliSense en Visual Studio deducir sus miembros. Estos son algunos ejemplos.

Variable

/** @type {Excel.Range} */
let subsetRange;

Extracto de IntelliSense para la variable

Parámetro

/** @param {Word.ParagraphCollection} paragraphs */
function myFunc(paragraphs){

}

Extracto de IntelliSense para el parámetro

Valor devuelto

/** @returns {Word.Range} */
function myFunc() {

}

Extracto de IntelliSense para el valor devuelto

Tipos complejos

/** @typedef {{range: Word.Range, paragraphs: Word.ParagraphCollection}} MyType

/** @returns {MyType} */
function myFunc() {

}

IntelliSense para la declaración de tipo complejo de

Consulte también