JavaScript 모듈에서 TypeScript 사용 ServiceNow SDK

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기5분
  • 를 사용하여 JavaScript 모듈을 만들 때 TypeScript를 ServiceNow SDK사용하십시오.

    TypeScript는 정적 타이핑 및 타입 주석을 사용하여 개발자가 .Visual Studio Code

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

    JavaScript 모듈에서 TypeScript 사용

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

    시작하기 전에

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

    필요한 역할: 관리자

    이 태스크 정보

    ServiceNow SDK 버전 2.0.1 이상에서는 now-sdk createnow-sdk convert 명령의 template 파라미터를 사용하여 기본적으로 JavaScript 모듈에서 TypeScript를 사용하도록 애플리케이션을 구성할 수 있습니다. 자세한 내용은 ServiceNow SDK CLI 문서를 참조하십시오. 다음 절차에 따라 모듈에서 TypeScript를 사용하도록 기존 애플리케이션을 업데이트합니다.

    프로시저

    1. 애플리케이션의 package.json 파일에서 다음과 같이 변경합니다.
      1. 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"
          }
      2. 스크립트 객체에서 빌드 스크립트를 업데이트하여 TypeScript(.ts) 모듈을 인스턴스에서 사용할 JavaScript(.js)로 컴파일합니다.
        {
            "scripts": {
                "build": "tsc -b && now-sdk build",
            }
        }
    2. 응용 프로그램의 기본 디렉터리에 응용 프로그램을 컴파일하기 위한 옵션을 정의하는 tsconfig.json 파일을 추가합니다.
      {
          "compilerOptions": {
              "rootDir": "src/server",
              "outDir": "dist/server",
              "module": "nodenext",
              "target": "es2021",
              "moduleResolution": "nodenext",
          },
          "include": ["src/**/*.ts"],
          "exclude": ["node_modules", "src/fluent/**"],
          "references": []
      }
    3. 애플리케이션의 now.config.json 파일에서 modulePaths 매개 변수를 설정하여 TypeScript 소스 파일을 tsconfig.json 따라 출력 모듈에 매핑합니다.
      {
        "scope": "x_snc_example_app",
        "scopeId": "2f8400eb07426110f736e28f69d3017a",   
        "name": "ExampleApp"
        "modulePaths": {
            "src/server/*.ts": "dist/server/*.js"
         }
      }
    4. src/server 디렉터리에서 모듈 코드를 포함할 하나 이상의 .ts 파일을 추가합니다.
    5. TypeScript 파일을 JavaScript 모듈로 컴파일하고 애플리케이션을 빌드합니다.
      1. 애플리케이션 디렉터리에서 시스템의 명령줄 도구를 엽니다.
      2. 다음 명령을 입력합니다.
        npm run build

    API에 대한 유형 정의 추가

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

    시작하기 전에

    필요한 역할: 관리자

    이 태스크 정보

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

    프로시저

    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)
      }
      주:
      모듈은 동일한 애플리케이션 범위에서 전역 스크립트 가능한 객체 또는 스크립트 가능한 객체에만 액세스할 수 있습니다.