發表文章

目前顯示的是 8月, 2020的文章

TypeScript 如何讓 Plain Object 轉成 Class 物件

TypeScript 如何讓 Plain Object 轉成 Class 物件 Plain Object , 在Java稱為 POJO(Plain Ordinary Java Object), 有時候會稱為DTO,指的就是沒有邏輯處理的物件,只有geter 和 seter ,那我們常把此Raw Data 變成有需要邏輯處理的方法的物件,就可以用等下介紹套件來解決 使用情境 export class Test{ name = 'World' ; public sayHello(): void { console .log( 'hello ' + this .name); } } 一般我們會將物件序列化為JSON string const o = new Test(); const jsonS = JSON .stringify(o) 然後將json string 存起來 然後之後還原回來,作使用 const ino:Test = JSON .parse(jsonS); ino.sayHello(); // 這時候會報錯 undefined method 結果會發現報錯 undefined method 解決方法 npm 安裝 class-transformer  npm i class-transformer 修改程式碼為 import { plainToClass } from 'class-transformer' ; ... const ino = JSON .parse(jsonS); const inPo = plainToClass(Test, ino); inPo.sayHello(); 這樣就解了 官方連結 :  https://github.com/typestack/class-transformer 如果是巢狀結構的物件,要再做以下修改 import { Type } from 'class-transformer' ; ... export class Test{ name = 'Wor

Angular專案 如何在Chrome 的開發小工具DevTool Debug 下中斷點

圖片
Angular專案 如何在Chrome 的開發小工具DevTool Debug 下中斷點 因為在Angular專案下,透過Page的樹狀工具是找不到,ts 腳本的,還好 ng server 可以補足這個缺點,所以寫一下如何找到腳本的方法 只有在 ng dev server ,才找的到,如果deploy到 prod server 就無法找到ts 腳本 1. 先透過 ng CLI 啟動 Dev Server ng serve 在console 會顯示 ** Angular Live Development Server is listening on localhost: 4200 , open your browser on http://localhost: 4200 / ** : Compiled successfully. 打開Chrome 瀏覽器 開啟  http://localhost:4200/ 看你專案的啟動設定,有可能port 或 path 不一定 打開開發者工具 (DevTool) 按下 F12 3.到  Sources  下,打開open file 4.輸入你要debug 的腳本 檔名就如專案中的檔名一至 只有在 ng dev server ,才找的到,如果deploy到 prod server 就無法使用中斷點了 5.可以下中斷點了 Google DevTool 中斷點 詳細教學 :  https://developers.google.com/web/tools/chrome-devtools/javascript?hl=zh-tw md code: # Angular專案 如何在Chrome 的開發小工具DevTool Debug 下中斷點 因為在Angular專案下,透過Page的樹狀工具是找不到,ts 腳本的,還好 ng server 可以補足這個缺點,所以寫一下如何找到腳本的方法 >> 只有在 ng dev server ,才找的到,如果deploy到 prod server 就無法找到ts 腳本 ## 1. 先透過 ng CLI 啟動 Dev Server ```cmd ng serve ```

Ubuntu 版本的 Jenkins 安裝 Java 11 Graalvm 筆記

圖片
最近自己的 一些 project, 剛好要用java11 才能compile, 但是用Jenkins內建安裝只能到Java9 ,索性就安裝Graalvm, 發現問題 springboot 要打包docker 就發生以下的錯誤 /var/lib/jenkins/workspace/BZK Removing network bzk_default Network bzk_default not found. Error: No such image: net.bzk/bzkflow [Gradle] - Launching build. [bzkflow] $ /var/lib/jenkins/tools/hudson.plugins.gradle.GradleInstallation/Gradle6.4/bin/gradle clean dockerClean docker Starting a Gradle Daemon (subsequent builds will be faster) > Task :bzkflow:clean UP-TO-DATE > Task :bzkflow:dockerClean UP-TO-DATE > Task :Comm:compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':Comm:compileJava'. > Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org Deprecated Gr