typescript - 避免 Typescript 抱怨缺少 React 组件道具
问题描述
仅在带有 javascript React 项目的 VSCode 上使用 typescript checkerjsconfig.json
我将需要disable/bypass
一些 typescript 检查,例如missing property
对 objects 和omited 的检查props
。
例如:
const Comp = ({ color, center, dark }) => <div> /* real code here */ </div>
<Comp color="blue" /> // TS check complaint on missing property: ts 2739
我希望能够使用一些 TS 检查和disable
其他检查。
我尝试,没有运气:
// global.d.ts
declare global {
namespace JSX {
type Element = string;
interface ElementAttributesProperty {
}
}
}
解决方案
如果您真的想避免为这些属性编写类型,那么您可以使用any
:
const Comp = ({ color, center, dark }: any) => <div> /* real code here */ </div>
您当然需要禁用该no-any
规则,假设您已启用(您应该)。您可以通过将其放在文件的前面来禁用整个文件:
/* tslint:disable:no-any */
当然,这样做会失去 TypeScript 在传递错误属性时发出警告的能力!但至少它会清楚地表明缺少的类型在哪里,并且您可以稍后再进行清理。
在我们的团队中,我们不鼓励人们使用any
,而是鼓励他们习惯于为所有内容编写类型。起初这确实让我们慢了下来,但没过多久我们就习惯了。
推荐阅读
- vb.net - System.InvalidCastException:“指定的演员表无效。” 错误
- android - 有什么方法可以在不使用 SensorManager 的情况下读取温度?
- android - 使用 Cucumber 和 RxJava 在 AndroidTest 中清理活动
- arrays - 仅使用标准库,是否有用于从 Rust 中的 2D 数组中切片列的简短表示法?
- javascript - React 流程图库
- azure - 在 azure 逻辑应用程序中如何获取 url 编码数据的键和值
- rust - 如何将编译器标志传递给 Rust 中的子板条箱?
- powershell - Get-AzureRmADServicePrincipal 和 Get-AzureADServicePrincipal 之间有什么区别?
- webpack - Styleguidist - 使用开发 webpack 配置构建
- javascript - 使用 .NET Aspose Cells 生成 Excel 文件并尝试通过浏览器下载