SDK와 함께 ServiceNow TypeScript 사용

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기4분
  • SDK로 JavaScript 모듈을 만들 때 TypeScript를 ServiceNow 사용합니다.

    TypeScript는 정적 입력 및 유형 주석을 사용하여 개발자가 에서 코드를 시각적 스튜디오 코드작성하는 동안 오류를 조기에 포착할 수 있도록 지원합니다.

    TypeScript 사용에 대한 일반적인 내용은 typescriptlang.org 웹 사이트의 TypeScript 설명서를 참조하세요.

    모듈에서 TypeScript 사용

    애플리케이션에서 TypeScript에 대한 지원을 추가하여 모듈에서 TypeScript를 사용합니다.

    시작하기 전에

    TypeScript 버전 4.8.4 이상을 설치합니다. 설치 지침은 typescriptlang.org 웹 사이트에서 TypeScript 다운로드 를 참조하세요.

    필요한 역할: admin

    프로시저

    1. 응용 프로그램의 기본 디렉터리에서 응용 프로그램 컴파일 옵션을 정의하는 tsconfig.json 파일을 추가합니다.
      outDir 매개 변수의 값은 애플리케이션의 package.json 파일에 있는 moduleDir의 값과 일치해야 합니다. 기본적으로 moduleDirsrc로 설정됩니다.
      {
          "compilerOptions": {
             "outDir": "src",
             "rootDir": "src",
             "allowJs": true,
         },
         "include": ["./src/**/*"]
       }
    2. 응용 프로그램의 package.json 파일에서 다음과 같이 변경합니다.
      1. devDependencies 객체에서 TypeScript 패키지 및 버전을 추가합니다.
        최신 버전의 TypeScript를 사용하는 것이 좋습니다.
        "devDependencies": {
                "@servicenow/glide": "25.0.0-alpha.10",
                "eslint": "8.50.0",
                "eslint-plugin-n":"16.2.0",
                "typescript": "5.3.3"
            }
      2. scripts 객체에서 인스턴스에서 사용할 TypeScript(.ts) 모듈을 JavaScript(.js)로 컴파일하는 빌드 스크립트를 추가합니다.
        {
            "scripts": {
                "build": "tsc --build --clean && tsc --build && now-sdk build"
            }
        }
    3. TypeScript 파일을 JavaScript 모듈로 컴파일하고 애플리케이션을 빌드합니다.
      1. 응용 프로그램 디렉터리에서 시스템의 명령줄 도구를 엽니다.
      2. 다음 명령을 입력합니다.
        npm run build

    API에 대한 유형 정의 추가

    Glide API 외부의 API 및 스크립팅 가능한 객체에 대한 자동 완성 지원을 받습니다.

    시작하기 전에

    필요한 역할: admin

    이 태스크 정보

    SDK 애플리케이션에서 ServiceNow 직접 모듈을 선언하여 자동 완성 지원을 위한 API에 대한 액세스를 스텁합니다. 이러한 모듈은 응용 프로그램 패키지에 패키지되지 않지만 응용 프로그램의 소스 제어 리포지토리에서 추적하고 개발자 간에 공유할 수 있습니다.

    프로시저

    1. 응용 프로그램 디렉터리에서 형식 정의에 대한 TypeScripe(.ts) 파일을 추가합니다.
    2. TypeScript 파일에서 API 및 스크립팅 가능한 객체에 대한 모듈을 선언합니다.
      이 예제에서는 API 네임스페이스(sn_app_api)를 사용하여 API에 대한 모듈을 선언합니다.
      declare module '@servicenow/glide/sn_app_api' {
      	class AppStoreAPI {
      		static canUpgradeAnyStoreApp(): boolean
      	}
      } 
      이 예제에서는 스크립트 포함(x_1234_scope)의 범위를 사용하여 스크립트 포함에 정의된 객체에 액세스하는 모듈을 선언합니다.
      declare module '@servicenow/glide/x_1234_scope' {
      	class MyLogItemClass {
      		myLogFunction()
      	}
      }
    3. 애플리케이션의 JavaScript 모듈에서 선언된 모듈을 가져옵니다.
      이 예제에서는 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!`)
      	}
      }
      이 예제에서는 MyLogItemClass 개체에 대해 선언된 모듈을 가져옵니다.
      import { MyLogItemClass } from '@servicenow/glide/x_1234_scope'
      
      export const myLogFunction = function (status) {
      	const myLogItem = new MyLogItemClass()
      	myLogItem.myLogFunction(status)
      }
      주:
      모듈은 동일한 애플리케이션 범위에 있는 전역 스크립팅 객체 또는 스크립팅 가능한 객체에만 액세스할 수 있습니다.