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);