您好,登錄后才能下訂單哦!
本篇內容介紹了“Laravel中如何使用Typescript”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
TypeScript 提供了可選的靜態類型,它允許你在編譯階段構建和驗證你的代碼。它還帶來了 IDE 自動完成和驗證支持以及代碼導航功能。簡而言之,TypeScript 增強了代碼的可讀性并改進了調試過程。
為你的 Laravel 項目添加 TypeScript 支持非常簡單,只需幾分鐘,但可以提升你的前端體驗。讓我們用 Vue 3 重新安裝 Laravel Breeze 來回顧一下這個過程。
讓我們從安裝 TypeScript 編譯器和相應的 Webpack 加載器開始。
npm install ts-loader typescript --save-dev
# 或者
yarn add ts-loader typescript -D
TypeScript 編譯器需要一個包含所需選項的配置文件。適當的 IDE 自動完成也是可取的。
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "es2020",
"moduleResolution": "node",
"baseUrl": "./",
"strict": true, // Enable strict type-checking options
"skipLibCheck": true, // Skip type checking of declaration files
"noImplicitAny": false // Bypass raising errors on `any` type
},
"include": ["resources/js/**/*"] // 前端路徑模式
}
初始 Laravel 安裝帶有一個 JavaScript 入口示例,需要將其轉換為 TypeScript。您只需將 .js
重命名為 .ts
。
-resources/js/app.js
+resources/js/app.ts
然后,讓 Mix 知道它應該將 JavaScript 代碼作為 TypeScript 處理。 Laravel Mix 帶有內置的 TypeScript 支持。
webpack.mix.js
-mix.js('resources/js/app.js', 'public/js')
+mix.ts('resources/js/app.ts', 'public/js')
你還需要告訴編譯器和 IDE,組件的代碼必須被視為 TypeScript。將 lang="ts"
部分附加到組件腳本部分。
<script lang="ts">
import { defineComponent } from "@vue/runtime-core";
export default defineComponent({
...
});
</script>
你都準備好了吧!你可以繼續按照以前的方式編寫代碼,并利用一些 TypeScript 功能并改善你的前端體驗。
TypeScript 允許你使用簡單類型和復雜結構來類型提示變量和方法。由于我們主要關注與后端交互,讓我們看一下與模型交互的示例。
讓我們創建一個包含所有必要類型聲明的文件 —— resources/js/types.d.ts
。
假設你有一個模型用戶,你可以從前端與之交互。這是默認用戶模型的基本 TypeScript 表示。它描述了一個對象可以具有哪些屬性以及這些屬性應該是什么類型。
resources/js/types.d.js
declare interface User {
id: number;
name: string;
email: string;
}
現在,你可以在分配變量或從方法返回值時使用此接口。
let user = <User>{ id: 1, name: 'Taylor Otwell' }
function getUser(): User {
...
}
因此,當你訪問 user
變量時,你的 IDE 會建議相應的對象屬性。它還會在你編譯代碼之前讓你知道何時出現類型錯誤。
為所有模型編寫接口并使其與后端代碼保持同步需要額外的時間。你可能需要考慮使用 laravel-typescript 擴展,它可以讓你將 Laravel 模型轉換為 TypeScript 聲明,并使它們與你的遷移保持同步。
“Laravel中如何使用Typescript”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。