en Kooboo Logo 说明文档

TypeScript & ES Module

 

Kooboo支持TypeScript与ES Module
 
 
ES Module
 
这是ECMAScript 定义的JavaScript模块化方法, 你可以在一个文件里定义一些对象方法, 在另一个文件里引用
 
比如 文件 sample.js定义了
 
 export function foo(){
 return 'bar'
 }
 
在其他文件中就可以引用
 
import {foo} from "./sample" 
let text = foo(); 
k.response.write(text); 
 
TypeScript
 
在kooboo的JavaScript文件里可以直接写TypeScript, 运行的时候会动态编译成JavaScript文件执行。
 
用户可以使用类型, 比如:
 
const car: { type: string, model: string, year: number } = {
  type: "BYD",
  model: "Song",
  year: 2021
};
 
用户可以定义Class
 
 class Person {
  private name: string; 
  public constructor(name: string) {
    this.name = name;
  } 
  public getName(): string {
    return this.name;
  }
}  
var newUser = new Person("Smith");  
k.response.write(newUser.getName()); 
 
用户可以使用泛型
 
class NamedValue<T> {
  private _value: T | undefined;

  constructor(private name: string) {}

  public setValue(value: T) {
    this._value = value;
  }

  public getValue(): T | undefined {
    return this._value;
  }

  public toString(): string {
    return `${this.name}: ${this._value}`;
  }
}

let value = new NamedValue<number>('myNumber');
value.setValue(10);

k.response.write(value.toString());
 
可能定义接口与实现
 
interface Rectangle {
  height: number,
  width: number
}

interface ColoredRectangle extends Rectangle {
  color: string
}

const coloredRectangle: ColoredRectangle = {
  height: 20,
  width: 10,
  color: "red"
};

k.response.write(coloredRectangle.color);