簡體   English   中英

Typescript:當我只有一個類型名稱時,如何構造一個特定類型的 object?

[英]Typescript: How can I construct an object of a particular type when I only have a type name?

我有一些代碼需要對具有編譯時未知類型的對象進行水合。 (代碼在庫中)從類型名稱中,我想發現類型並在運行時動態構造它。 這里的重要操作是運行默認構造函數並執行原型預期的其他設置。 這在 typescript 中是否可能? 我該怎么做?

正如@pan93412 所說,Typescript 的類型在運行時大部分被刪除並且沒有被具體化,這是一個明確的項目目標。 我建議嘗試為 class 構造函數(或工廠方法)創建一個已知類型名稱的 map,並使用它們來重構對象:

https://www.typescriptlang.org/play?#code/MYGwhgzhAEDqCWATA5gUwC7QN4Chr+gHck10B9AM3lREWgF5oByMJnAXx1EhgBUALeADtk2PAXSCRlarQbMARm05cA9kIiZeATQAKAUQDK83ATgkMALnMoMAGnH4Bw5NeciO0SNmgBtdACeAA6o1poATi4AutZgQgHQKsDqmtAQqJFgIPAAXqh0jKYEqgoAVqjA6BDWvkwItuhMdszuyExRHDhqGqogqAB0IKrIABTpmdl5iP0l5ZUQ-QC2YEEjqgwAfNBCqITQOgaGvqpRIwCUF0A

您是否詢問過諸如interfacetype alias的問題? 好吧,這是不可能的,因為 TypeScript 將清除編譯后的 JS 中的所有類型信息 - 類型信息僅用於tsc的類型檢查、元數據(需要顯式啟用)和生成的.d.ts不能在運行時使用。

最好給我們更明確的例子,以便我們能夠提供更好的答案。 :-)


我不確定 TypeScript 中的元數據是如何工作的。 我以前沒有寫過這樣的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM