在带有jsconfig.json
的javascript React项目中,仅对VSCode使用打字稿检查器,我需要disable/bypass
对对象进行一些打字稿检查,例如missing property
,并省略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 {
}
}
}
答案 0 :(得分:0)
问题是您尚未指定组件道具的签名。您可以通过声明一个接口来解决此问题
interface CompProps {
color: string;
center: boolean; // or whatever its type is
dark: boolean;
}
const Comp = ({ color, center, dark }: CompProps) => <div>{/* real code here */}</div>
答案 1 :(得分:0)
如果您真的想避免为这些属性编写类型,则可以使用any
:
const Comp = ({ color, center, dark }: any) => <div> /* real code here */ </div>
当然,您需要禁用no-any
规则,前提是您已启用该规则(应该这样做)。您可以通过将其放在文件的前面来禁用整个文件:
/* tslint:disable:no-any */
当然,这样做会丢失TypeScript在传递错误属性时向您发出警告的能力!但是至少可以清楚地知道丢失的类型在哪里,并且您随时可以稍后进行清理。
在我们的团队中,我们不鼓励人们使用any
,而是鼓励他们习惯于为所有内容编写类型。起初确实让我们放慢了脚步,但是很快我们就习惯了。