[英]JavaScript checking vs Typescript
我的反應 js 應用程序中有下一個代碼:
interface Input {
name: string;
type?: 'email' | 'text';
}
const Input = ({type}: Input) => {
return <input type={type}/>
}
該組件只能接收類型email
和text
。 如果用戶將添加作為道具number
,那么編譯器將在編譯時拋出錯誤。 前任:
<Input type="number"/>
Type '"password"' is not assignable to type '"text" | "email".
,但同時我們無論如何都可以輸入:
<Input type="number"/>
即使出現此錯誤並抑制錯誤。
問題:我應該像我的情況一樣只使用 typescript 來限制type
道具,還是應該使用 javascript 來排除type
為number
的情況?
這是安全性、速度和您自己的開發時間之間的權衡。 您需要根據您的用例來決定:這是一個判斷問題,而不是通用最佳實踐。 盡管運行時檢查會使您的代碼在運行時測試時更安全、更完整,但對於您是唯一用戶且您使用次數有限的組件而言,它可能不會提供太多價值。
我可以在這里看到任何一種情況; 您需要根據您對收益和成本的理解來做出決定。
即使 TypeScript 不太可能出錯,也是添加額外防御檢查的好時機:
any
、隱式或顯式的遷移代碼庫中value
相反,在這些情況下,運行時防御檢查可能有點矯枉過正:
type
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.