[英]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.