導航:首頁 > 源碼編譯 > ts編譯dts

ts編譯dts

發布時間:2023-08-26 01:23:40

㈠ ts類型斷言(二)

一、將任何一個類型斷言為any

ts 的類型系統運轉良好,每個值類型都具體而精確。當我們引用一個在此類型 上不存在的屬性或方法時,就會報錯:

上面的例子中,數字類型的變數 num 是沒有length 屬性的,故ts給出了相應的錯誤提示。

但有的時候,我們非常確定這段代碼不會出錯,比如下面這個例子:

上面的例子中,我們需要將window.上添加一個屬性 num,但ts編譯時會報錯,提示我們window上不存在nun屬性。 此時我們可以使用 as any 臨時將 window 斷言為 any 類型

在any類型的變數上,訪問任何屬性都是允許的。

注意 :將一個變數斷言為any可以說是解決ts中類型問題的最後一個手段。 它極有可能掩蓋了真正的類型錯誤。 如果不是非常確定,就不要使用 as any

我們不能濫用 as any , 也不要否定它的作用

二、將any斷言為一個具體的類型

在開發中,我們不可避免需要處理any類型的變數,它們可能是由於第三方庫未能定義好自己的類型,也有可能是 歷史 遺留的或其他人編寫的爛代碼,還可能是受到ts類型系統的限制而無法精確定義類型的場景。

遇到any類型的變數時,我們可以選擇無視它,任由它滋生更多的any。

我們也可以選擇改進它,通過類型斷言及時把any斷言為精確的類型,亡羊補牢,使我們的代碼向著高可維護性的目標發展。

例如項目之前定義了一個 getCalander,它的返回值是any:

那麼我們在使用它時,最好能夠將調用了它之後的返回值斷言成一個精確的類型, 這樣就方便了後續的操作:

選擇語言

上面的例子中,我們調用完getCalander之後,將它斷言為CalanderType類型,從而明確getCurrentDate的類型,後續對getCurrentDate的訪問時就有了代碼補全,提高承俄碼以可維護性。

三、類型斷言的限制

根據之前的例子,我們可以得出:

1、聯合類型可以被斷言為其中一個類型

2、父類可以被斷言為子類

3、任何類型都可以被斷言為any

4、 any 可以被斷言為任何類型

那麼類型斷言有沒有什麼限制呢?是不是任何一個類型都可以被斷言為任何另一個類型呢?

其實並不是任何一個類型都可以被斷言為任何另一個類型。

具體來說,若A兼容B,那麼A能夠被斷言為B,B也能被斷言為A。

下面我們通過一個簡化的例子,來理解類型斷言的限制:

上例是可以斷言的,我們再看看下面的栗子:

這個時候會提示錯誤,兩者不能充分重疊,這意味要想斷言成功,還必須具備有一個條件:

即:要使得A能夠被斷言為B,只需要A兼容B或B兼容A即可

四、雙重斷言(不建議使用)

」任何類型都可以被斷言為any , any 可以被斷言為任何類型

那麼我們是不是可以使用雙重斷言 xxx as any as xxx 將任何一個類型斷言為任何另一個類型呢?

在上面的例子中,若直接使用mySelf as Fish肯定會報錯,因為mySelf 和Fish 互相都不兼容。

若使用雙重斷言,則可以打破「要使得A能夠被斷言為B,只需要A兼容B或B兼容A即可」的限制,將任何一個類型斷言為任何另一個類型到若你使用了這種雙重斷言,那麼十有八九是非常錯誤的,它很可能會導致運行時錯誤。

㈡ 03 Puerts for Unity 搭建 Ts 編譯環境

在上兩節中,腳本文件內容一直都是 Js。Ts 作為 Js 的超集,不能直接丟進 V8 中運行,其在運行時仍然是以 Js 形式出現的。

所以,還需要搭建 Ts -> Js 的編譯環境。

Ts 編譯器有很多。例如:tsc(親兒子)、esbuild、swc 等...

這里將介紹兩種方案:

可以將以下內容,復制到初始化好的 package.json 中。

這里稍對其內容稍作介紹

在項目目錄下運行 yarn 或 npm install 來拉取依賴到本地,拉取到的所有的依賴都將保存在 node_moles 目錄中。

該文件用於配置 Ts 的 相關配置項

修改文件內容如下,稍後對參數稍作講解:

參數基本說明:

該配置文件主要有以下幾個作用:

對於該配置文件有以下幾個要求:

在 Assets/Editor/ 目錄下(沒有則手動創建該目錄),創建 PuertsConfig.cs 文件,內容如下:

出於輕量和速度考慮,且這里只需要對 Js 進行一些簡單處理,並不需要用到諸如 Webpack、Grunt、Gulp...這些強大的工具。

所以自己擼一個編譯相關的處理腳本,在項目根目錄下創建 Build.js ,其內容如下:

運行 yarn run watch:swc 或 yarn run watch:tsc 啟動監聽編譯,這樣 TypeScript 目錄下所有的 ts 文件有任何改動。都會實時編譯。

在 TypeScript/ 目錄下創建 main.ts 文件,內容如下:

看一下 Assets/StreamingAssets/Scripts/ 有應該有編譯出對應的 Js 文件,如果沒有可以嘗試重新保存一下文件或執行 yarn run build:tsc 手動編譯(只編譯一次)。

試著運行下游戲試試吧!

㈢ vue3怎麼修改ts類型

vue3修改ts類型設置自動編譯ts-js文件,在集成終端中打開具體操作如下:
1、根據查詢相關信息顯示:生成配置文件tsconfig.jsontscinit。
2、進入上述配置文件修改tsconfig.json配置outDir:./js,把ts文件編衡型譯最終存咐蘆猜放的位置strict:false,不使用嚴格模式。
3、啟動監視任務,終端->運行任務->顯示所有任嘩做務->(tsc監視)。

閱讀全文

與ts編譯dts相關的資料

熱點內容
程序員相親被刪除微信 瀏覽:790
centos命令窗口 瀏覽:596
編譯器有幾個好用的 瀏覽:500
資料庫和網站如何搭載伺服器 瀏覽:154
網路流理論演算法與應用 瀏覽:795
java和matlab 瀏覽:388
釘釘蘋果怎麼下app軟體 瀏覽:832
php網站驗證碼不顯示 瀏覽:859
鋁膜構造柱要設置加密區嗎 瀏覽:344
考駕照怎麼找伺服器 瀏覽:884
阿里雲伺服器如何更換地區 瀏覽:972
手機app調音器怎麼調古箏 瀏覽:503
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:19
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:275
冒險島什麼伺服器好玩 瀏覽:543