Usando TypeScript com o SDK ServiceNow

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 2 min. de leitura
  • Use o TypeScript ao criar módulos JavaScript com o SDK ServiceNow.

    O TypeScript usa digitação estática e anotações de tipo para oferecer suporte aos desenvolvedores que detectam erros antes ao escrever o código em Visual Studio Code.

    Para obter informações gerais sobre como usar o TypeScript, consulte a Documentação do TypeScript no site typescriptlang.org.

    Usar TypeScript em módulos

    Use TypeScript em módulos adicionando suporte para TypeScript em sua aplicação.

    Antes de Iniciar

    Instale o TypeScript versão 4.8.4 ou posterior. Para obter instruções de instalação, consulte Baixar TypeScript no site typescriptlang.org.

    Função necessária: administrador

    Procedimento

    1. No diretório base da aplicação, adicione um arquivo tsconfig.json que defina as opções para compilar a aplicação.
      O valor do parâmetro outDir deve corresponder ao valor do moduleDir no arquivo package.json da sua aplicação. Por padrão, moduleDir é definido como src.
      {
          "compilerOptions": {
             "outDir": "src",
             "rootDir": "src",
             "allowJs": true,
         },
         "include": ["./src/**/*"]
       }
    2. No arquivo package.json da aplicação, faça as seguintes mudanças.
      1. No objeto devDependencies, adicione o pacote TypeScript e a versão.
        É recomendável usar a versão mais recente do TypeScript.
        "devDependencies": {
                "@servicenow/glide": "25.0.0-alpha.10",
                "eslint": "8.50.0",
                "eslint-plugin-n":"16.2.0",
                "typescript": "5.3.3"
            }
      2. No objeto de scripts, adicione um script de compilação que compila módulos TypeScript (.ts) para JavaScript (.js) para uso na instância.
        {
            "scripts": {
                "build": "tsc --build --clean && tsc --build && now-sdk build"
            }
        }
    3. Compile arquivos TypeScript em módulos JavaScript e crie sua aplicação.
      1. No diretório da aplicação, abra uma ferramenta de linha de comando no sistema.
      2. Insira o seguinte comando:
        npm run build

    Adicionar definições de tipo para APIs

    Obtenha suporte de digitação antecipada para APIs e objetos programáveis fora das APIs do Glide.

    Antes de Iniciar

    Função necessária: administrador

    Por Que e Quando Desempenhar Esta Tarefa

    Declare módulos diretamente na aplicação ServiceNow SDK para acesso de rascunho às APIs para suporte de digitação antecipada. Esses módulos não são empacotados no pacote da aplicação, mas podem ser rastreados em um repositório de controle de código-fonte para a aplicação e compartilhados entre os desenvolvedores.

    Procedimento

    1. No diretório da aplicação, adicione um arquivo TypeScripe (.ts) para definições de tipo.
    2. Em seu arquivo TypeScript, declare módulos para APIs e objetos programáveis.
      Este exemplo declara um módulo para uma API usando o namespace da API (sn_app_api):
      declare module '@servicenow/glide/sn_app_api' {
      	class AppStoreAPI {
      		static canUpgradeAnyStoreApp(): boolean
      	}
      } 
      Este exemplo declara um módulo para acessar objetos definidos em script includes usando o escopo do script include (x_1234_scope):
      declare module '@servicenow/glide/x_1234_scope' {
      	class MyLogItemClass {
      		myLogFunction()
      	}
      }
    3. Nos módulos JavaScript da sua aplicação, importe os módulos declarados.
      Este exemplo importa o módulo declarado para a AppStoreAPI.
      import { gs } from '@servicenow/glide'
      import { AppStoreAPI } from '@servicenow/glide/sn_app_api'
      
      export const canUpgradeStoreApp = function () {
      	var canUpgrade = AppStoreAPI.canUpgradeAnyStoreApp()
      	if (canUpgrade) {
      		gs.addInfoMessage(`You can upgrade store apps!`)
      	} else {
      		gs.addInfoMessage(`You cannot upgrade store apps!`)
      	}
      }
      Este exemplo importa o módulo declarado para o objeto MyLogItemClass.
      import { MyLogItemClass } from '@servicenow/glide/x_1234_scope'
      
      export const myLogFunction = function (status) {
      	const myLogItem = new MyLogItemClass()
      	myLogItem.myLogFunction(status)
      }
      Nota:
      Os módulos podem acessar somente objetos programáveis globais ou objetos programáveis no mesmo escopo da aplicação.