basedcollective/laravel-typescript 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

basedcollective/laravel-typescript

最新稳定版本:v0.0.6

Composer 安装命令:

composer require basedcollective/laravel-typescript

包简介

Transform Laravel models into TypeScript interfaces

README 文档

README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

Note

This is an up-to-date, maintained fork of the abandoned laravel-typescript package.

The package lets you generate TypeScript interfaces from your Laravel models.

Installation

Laravel 10+ and PHP 8.1 are required.

You can install the package via composer:

composer require basedcollective/laravel-typescript

Usage

Generate TypeScript interfaces:

php artisan typescript:generate

Example usage with Vue 3:

<script setup lang="ts">
defineProps<{
    product: App.Models.Product;
}>();
</script>

<template>
    <h1>{{ product.name }}</h1>
    <p>Price: ${{ product.price }}</p>
</template>

Configuration

Optionally, you can publish the config file:

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/models.d.ts'),

    // load namespaces from composer's `dev-autoload`
    'autoloadDev' => false,
];

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 interface:

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;
    }
    ...
}

Laravel TypeScript supports:

  • Database columns
  • Model relations
  • Model accessors
  • Casted attributes

Testing

composer test

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 113
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-02-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固