在Laravel框架的模型中构建Typescript接口

2023-06-01 00:00:00 模型 框架 构建

Laravel Typescript是一个可以让你从 Laravel 模型生成 TypeScript 接口的扩展包。

文档中的示例演示了如何使用具有数据库列和关系的复杂模型并为它们快速生成 TypeScript 接口:


class Product extends Model
{
    public function category(): BelongsTo
    {
        return $this->belongsTo(Category::class);
    }
 
    public function features(): HasMany
    {
        return $this->hasMany(Feature::class);
    }
}

上面的模型会翻译成如下界面:


declare namespace App.Models {
    export interface Product {
        id: number;
        category_id: number;
        name: string;
        price: number;
        created_at: string | null;
        updated_at: string | null;
        category?: App.Models.Category | null;
        features?: Array<App.Models.Feature> | null;
    }
    // ...
}

该包可以支持数据库列、模型关系、模型访问器以及对转换属性的计划支持。


最后,这是一个示例,说明如何将此包与 Vue 3 组件一起使用:

import { defineComponent, PropType } from "vue";
 
export default defineComponent({
    props: {
        product: {
            type: Object as PropType<App.Models.Product>,
            required: true,
        },
    },
}

您可以了解有关此软件包的更多信息,获取完整的安装说明,并在 GitHub 上查看源代码。


相关链接:

Laravel Typescript扩展包

https://github.com/lepikhinb/laravel-typescript

文档:

https://github.com/lepikhinb/laravel-typescript/blob/master/README.md

相关文章