JavaScript 모듈에서 TypeScript를 사용하여 ServiceNow SDK

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 6분
  • 를 사용하여 ServiceNow SDKJavaScript 모듈을 생성할 때 TypeScript를 사용합니다.

    TypeScript는 정적 타이핑 및 타입 주석을 사용하여 개발자가 에서 코드를 작성하는 동안 오류를 더 일찍 포착할 수 있도록 지원합니다.Visual Studio Code

    TypeScript 사용에 대한 일반적인 정보는 typescriptlang.org 웹 사이트의 TypeScript 설명서 를 참조하십시오.

    JavaScript 모듈에서 TypeScript 사용

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

    시작하기 전에

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

    필요한 역할: 관리자

    이 태스크 정보

    모듈에서 TypeScript를 사용하도록 TypeScript 템플릿을 사용하여 생성되지 않은 기존 애플리케이션을 업데이트하려면 다음 절차를 따르십시오. 버전 3.0부터 ServiceNow SDK 애플리케이션은 기본적으로 기본 컴파일러 옵션을 사용하여 JavaScript 모듈에서 TypeScript 사용을 지원합니다. 빌드 프로세스 중에 TypeScript를 JavaScript로 변환하기 위한 사용자 지정 옵션과 함께 tsconfig.json 파일을 사용하려면 now.config.json 파일에서 tsconfigPath 매개변수를 구성합니다. 애플리케이션을 빌드하기 전에 사용자 지정 변환 단계를 사용하려면 now.config.json 파일에서 modulePaths 매개변수를 구성합니다.

    프로시저

    1. Visual Studio Code에서 범위가 지정된 애플리케이션 디렉터리를 엽니다.
    2. 애플리케이션의 package.json 파일을 열고 devDependencies 개체에서 TypeScript 패키지 및 버전을 추가하여
      "devDependencies": {
          "typescript": "<version>",
          "@servicenow/sdk": "2.0.0",
          "@servicenow/glide": "26.0.1",
          "eslint": "8.50.0",
          "@servicenow/eslint-plugin-sdk-app-plugin": "2.0.0"
        }
    3. 응용 프로그램의 src/server 디렉터리에서 응용 프로그램을 컴파일하기 위한 옵션을 정의하는 tsconfig.json 파일을 추가합니다.
      {
          "compilerOptions": {
              "rootDir": "./",
              "outDir": "../../dist/server",
              "module": "es2022",
              "target": "es2022",
              "moduleResolution": "bundler",
              "allowJs": true,
              "declaration": false,
              "sourceMap": false,
              "skipLibCheck": true,
              "allowImportingTsExtensions": true,
              "noEmit": true
          },
          "include": [
              "./**/*.ts",
              "../../@types/**/*.modules.d.ts"
          ],
          "exclude": [
              "**/*.now.ts"
          ]
      }
    4. 애플리케이션의 now.config.json 파일에서 tsconfigPath 매개변수를 JavaScript 모듈의 tsconfig.json 위치 로 설정합니다.합니다.
      {
        "scope": "x_snc_example_app",
        "scopeId": "2f8400eb07426110f736e28f69d3017a",   
        "name": "ExampleApp",
        "tsconfigPath": "./src/server/tsconfig.json"
        
      }
    5. src/server 디렉터리에서 모듈 코드를 포함할 하나 이상의 .ts 파일을 추가합니다.
      모듈 생성에 대한 자세한 내용은 다음 문서를 참조하십시오 ServiceNow SDK를 사용하여 애플리케이션에서 JavaScript 모듈을 만들고 사용합니다..

    다음에 수행할 작업

    애플리케이션을 빌드 및 설치하여 TypeScript 파일을 JavaScript 모듈로 컴파일하고 해당 모듈을 EcmaScript 모듈 [sys_module] 테이블에 추가합니다. 자세한 내용은 ServiceNow SDK 를 사용하여 애플리케이션 및 설치배포 문서를 참조하십시오.

    API에 대한 유형 정의 추가

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

    시작하기 전에

    필요한 역할: 관리자

    이 태스크 정보

    주:
    now-sdk dependencies 명령을 사용하여 대부분의 API, 스크립트 포함 및 기타 스크립트 가능 객체에 대한 유형 정의를 다운로드할 수 있습니다. 자세한 내용은 모듈 및 스크립트 종속성 다운로드 문서를 참조하십시오.

    now-sdk 종속성이 다운로드하지 않는 유형 정의를 수동으로 추가하려면 다음 절차를 따르십시오. 애플리케이션에서 ServiceNow SDK 직접 모듈을 선언하여 자동 완성 지원을 위한 API에 대한 액세스를 스텁할 수 있습니다. 이러한 모듈은 애플리케이션 패키지에 패키지되어 있지는 않지만 애플리케이션의 소스 제어 리포지토리에서 추적하고 개발자 간에 공유할 수 있습니다.

    프로시저

    1. Visual Studio Code에서 범위가 지정된 애플리케이션 디렉터리를 엽니다.
    2. 애플리케이션에서 유형 정의에 대한 TypeScripe(.ts) 파일을 추가합니다.
    3. 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()
      	}
      }
    4. 애플리케이션의 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)
      }
      주:
      모듈은 동일한 애플리케이션 범위에 있는 전역 스크립트 가능 객체 또는 스크립트 가능 객체에만 액세스할 수 있습니다.