JavaScript 모듈에서 TypeScript 사용 ServiceNow SDK

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

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

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

    JavaScript 모듈에서 TypeScript 사용

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

    시작하기 전에

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

    필요한 역할: admin

    이 태스크 정보

    ServiceNow SDK 버전 2.0.1 이상에서는 now-sdk createnow-sdk convert 명령의 template 매개 변수를 사용하여 TypeScript를 사용하도록 구성된 애플리케이션을 만들거나 변환할 수 있습니다. 자세한 내용은 ServiceNow SDK 증권 시세 표시기 문서를 참조하십시오. 모듈에서 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. scripts 객체에서 인스턴스에서 사용할 TypeScript(.ts) 모듈을 JavaScript(.js)로 컴파일하도록 빌드 스크립트를 업데이트합니다.
        {
            "scripts": {
                "build": "tsc -b && now-sdk build",
            }
        }
    2. 응용 프로그램의 기본 디렉터리에서 응용 프로그램 컴파일 옵션을 정의하는 tsconfig.json 파일을 추가합니다.
      {
          "compilerOptions": {
              "rootDir": "src",
              "outDir": "dist/src",
              "module": "nodenext",
              "target": "es2021",
              "moduleResolution": "nodenext",
          },
          "include": ["src/**/*.ts"],
          "exclude": ["node_modules", "src/fluent/**"],
          "references": []
      }
    3. 응용 프로그램의 now.config.json 파일에서 transpiledSourceDir 매개 변수를 tsconfig.json 파일의 outDir 매개 변수와 동일한 값으로 설정합니다.
      {
        "transpiledSourceDir": "dist/src",
        "scope": "x_snc_example_app",
        "scopeId": "2f8400eb07426110f736e28f69d3017a"
      }
    4. src/server 디렉터리에서 모듈 코드를 포함할 .ts 파일을 하나 이상 추가합니다.
    5. TypeScript 파일을 JavaScript 모듈로 컴파일하고 애플리케이션을 빌드합니다.
      1. 응용 프로그램 디렉터리에서 시스템의 명령줄 도구를 엽니다.
      2. 다음 명령을 입력합니다.
        npm run build

    API에 대한 유형 정의 추가

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

    시작하기 전에

    필요한 역할: admin

    이 태스크 정보

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