首页 > 解决方案 > 避免 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 {
    }
  }
}

标签: typescript

解决方案


如果您真的想避免为这些属性编写类型,那么您可以使用any

const Comp = ({ color, center, dark }: any) => <div> /* real code here */ </div>

您当然需要禁用该no-any规则,假设您已启用(您应该)。您可以通过将其放在文件的前面来禁用整个文件:

/* tslint:disable:no-any */

当然,这样做会失去 TypeScript 在传递错误属性时发出警告的能力!但至少它会清楚地表明缺少的类型在哪里,并且您可以稍后再进行清理。

在我们的团队中,我们不鼓励人们使用any,而是鼓励他们习惯于为所有内容编写类型。起初这确实让我们慢了下来,但没过多久我们就习惯了。


推荐阅读