如何在Typescript中将空接口指定为泛型参数?
我在Typescript中有一个React组件。此组件具有状态,但没有属性。我有以下代码:如何在Typescript中将空接口指定为泛型参数?,typescript,generics,eslint,Typescript,Generics,Eslint,我在Typescript中有一个React组件。此组件具有状态,但没有属性。我有以下代码: interface State { ... } class MyComponent extends React.Component<{}, State> { ... } 作为第一个泛型参数,我得到了另一个警告,说空接口与{}相同 那么,我该怎么办?我不能使用从不,因为它会导致一大堆其他错误,请-这在这里真的没有意义。除了禁用禁止类型规则,还有其他选择吗?假设您希望组件能够作为其他组件的父组
interface State { ... }
class MyComponent extends React.Component<{}, State> { ... }
作为第一个泛型参数,我得到了另一个警告,说空接口与{}
相同
那么,我该怎么办?我不能使用
从不
,因为它会导致一大堆其他错误,请-这在这里真的没有意义。除了禁用禁止类型
规则,还有其他选择吗?假设您希望组件能够作为其他组件的父组件,那么您可能希望接受子项
键,即使它没有其他道具
您的代码将如下所示,不会传递一个空的道具规范
class MyComponent extends React.Component<{ children?: ReactNode }, State> { ... }
类MyComponent扩展了React.Component{…}
我不使用react,所以我不确定作为道具类型的目的是什么,但是如果你是故意这样做的,并且理解你在做什么,那么你对
禁止类型的配置可能太激进了。我使用{}
来表示“没有属性”使用unknown
作为你的道具类型。如果你没有在tsconfig中使用严格模式,你可以使用unknown
到never
作为any
旁边的类型。jsonI可以使用unknown,但在这里没有什么意义,因为接口是完全已知的-它只是空的。
class MyComponent extends React.Component<{ children?: ReactNode }, State> { ... }