在上一篇文章中, 雖然成功配置了Code Code的TypesScript開發環境, 但並沒有成功使用到TypeScript類型檢查的優勢, 這篇文章會以另一個方法解決問題

問題原因

TypeScript與Cloud Code的模組加載規則不同

TypeScript以模組加載, Cloud Code以代碼片段加載

解決方法

TypeScript開發不遷就Cloud Code, 完全根據模組開發

編寫編譯器, 自行將TypeScript編譯為Cloud Code

例子

  • Typescript

    // modules/myModuleA.ts
    export function addNums(num1: number, num2: number) {
    	return num1 + num2;
    }
    
    // event/myEvent.ts
    import * as MyModuleA from "myModuleA";
    Spark.setScriptData("numAdd", MyModuleA.addNums(1, 1));
    
  • Cloud Code

    // modules/myModuleA.js
    "use strict";
    function module_myModuleA_addNums(num1, num2) {
    	return num1 + num2;
    }
    
    // event/myEvent.js
    "use strict";
    require("myModuleA");
    Spark.setScriptData("numAdd", module_myModuleA_addNums(1, 1));
    

使用方法

  1. 安裝編譯器npm install --save-dev git+https://github.com/johnsoncodehk/ts2gamesparks.git
  2. 執行ts2gs進行編譯