alexthekiwi/laravel-typescript
最新稳定版本:0.1.2
Composer 安装命令:
composer require alexthekiwi/laravel-typescript
包简介
Transform Laravel models into TypeScript interfaces
关键字:
README 文档
README
The package lets you generate TypeScript types from your Laravel models.
Introduction
Say you have a model which has several properties (database columns) and multiple relations.
class Product extends Model { public function category(): BelongsTo { return $this->belongsTo(Category::class); } public function features(): HasMany { return $this->hasMany(Feature::class); } }
Laravel TypeScript will generate the following TypeScript type:
export type App = { Models: { 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; } }; ... }
Laravel TypeScript supports:
- Database columns
- Model relations
- Model accessors
- Casted attributes
Installation
Laravel 8+ and PHP 8+ are required. You can install the package via composer:
composer require based/laravel-typescript
You can publish the config file with:
php artisan vendor:publish --provider="Based\TypeScript\TypeScriptServiceProvider" --tag="typescript-config"
This is the contents of the published config file:
return [ 'generators' => [ Model::class => ModelGenerator::class, ], 'output' => resource_path('js/types/models.d.ts'), // load namespaces from composer's `dev-autoload` 'autoloadDev' => false, ];
Usage
Generate TypeScript interfaces.
php artisan typescript:generate
Or the shortcut:
php artisan ts:generate
Example usage with React:
import type { App } from '@/types'; interface Props { Product: App['Models']['Product']; }
Testing
composer test
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 177
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-02-22