Obter o JavaScript IntelliSense no Visual Studio

Quando utiliza o Visual Studio 2019 e posterior para desenvolver Suplementos do Office, pode utilizar o JSDoc para ativar o IntelliSense para as variáveis, objetos, parâmetros e valores devolvidos do JavaScript. Este artigo fornece uma visão geral do JSDoc e como usá-lo para criar IntellSense no Visual Studio. Confira mais detalhes em JavaScript IntelliSense e Suporte ao JSDoc no JavaScript.

Definições de tipo do Office.js

Você precisa fornecer as definições dos tipos no Office.js para o Visual Studio. Para fazer isso, é possível:

  • Ter uma cópia local dos arquivos Office.js em uma pasta em sua solução denominada \Office\1\. Os modelos de projeto de Suplemento do Office no Visual Studio adicionam essa cópia local quando você cria o projeto de um suplemento.

  • Use a versão online do Office.js adicionando um arquivo tsconfig.json à raiz do projeto de aplicativo da Web na solução do suplemento. O arquivo deve incluir o seguinte conteúdo:

        {
            "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.
            }
        }
    

Sintaxe JSDoc

A técnica básica é incluir antes da variável (ou do parâmetro e assim por diante) um comentário que identifica seu tipo de dados. Isso permite que o IntelliSense no Visual Studio infira seus membros. Eis alguns exemplos.

Variável

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

Excerto de IntelliSense para a variável 'subsetRange'.

Parâmetro

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

}

Excerto do IntelliSense para o parâmetro

Valor de retorno

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

}

Excerto de IntelliSense para o valor devolvido

Tipos complexos

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

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

}

IntelliSense para declaração de tipo complexo de

Confira também