扫一扫分享
Deepkit Framework 是一种用于企业 TypeScript 应用程序的新型高性能实时 TypeScript 框架。独立的 TypeScript 库和一个将所有内容整合在一起的框架。
要从头开始使用 Deepkit Framework 创建 Deepkit 应用程序,您可以使用 npm init:
npm init @deepkit/app my-deepkit-app
JavaScript 的运行时类型系统,由 TypeScript 类型提供支持。Deepkit 的类型编译器首次使在任何 JavaScript 运行时中使用整个 TypeScript 类型系统成为可能,从而实现了编写数据驱动应用程序的全新方式。
type status = 'pending' | 'running' | 'finished';
// ['pending', 'running', 'finished']
valuesOf<status>();
interface User {
id: integer & PrimaryKey;
created: Date;
username: string & MinLength<3> & Unique;
email: Email;
firstName?: string;
lastName?: string;
}
// Full access to all computed type information
const reflection = ReflectionClass.from<User>();
// Type information of arbitrary type expressions
// {kind: ReflectionKind.class, types: [...]
typeOf<Pick<User, 'id' | 'username'>>();
具有类型表达式的强大依赖注入容器,使 HTTP 路由、CLI 命令和 RPC 控制器安全、快速且易于编写。
没有 json 配置文件、不必要的样板文件、模式文件或代码生成:TypeScript 充分利用了它的功能。
class Userapi {
constructor(private database: Database) {
}
@http.GET('/user/:id')
async user(id: integer & Positive): Promise<User> {
return await this.database.query(User)
.filter({id})
.findOne();
}
@http.GET('/user')
async users(
limit: HttpQuery<integer> & Maximum<100> = 10
): Promise<User[]> {
return await this.database.query(User)
.limit(limit)
.find();
}
}
new App({
controllers: [UserAPI],
imports: [new FrameworkModule()]
}).run();
手机预览