Javascript 在React TypeScript中仅包含布尔值的对象的类型是什么?

Javascript 在React TypeScript中仅包含布尔值的对象的类型是什么?,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我有一些用React JavaScript编写的代码,现在已经迁移到了TypeScript,我不完全确定该声明什么类型。我最好不要使用任何类型: 有两种方法: 将类型设置为记录 类型ResponseType=记录; 常量组件:React.FC=:JSX.Element=>{ 常量[responseStatus,setResponseStatus]=React.useState{ 空的回答:是的, 未成功响应:false, 成功响应:错误, 回答:错 }; 回来 {responseStatus.e

我有一些用React JavaScript编写的代码,现在已经迁移到了TypeScript,我不完全确定该声明什么类型。我最好不要使用任何类型:

有两种方法:

将类型设置为记录 类型ResponseType=记录; 常量组件:React.FC=:JSX.Element=>{ 常量[responseStatus,setResponseStatus]=React.useState{ 空的回答:是的, 未成功响应:false, 成功响应:错误, 回答:错 }; 回来 {responseStatus.emptyResponse} } 为状态创建一个接口 界面反应状态{ [键:字符串]:布尔值; } 常量组件:React.FC=:JSX.Element=>{ 常量[responseStatus,setResponseStatus]=React.useState{ 空的回答:是的, 未成功响应:false, 成功响应:错误, 回答:错 }; 回来 {responseStatus.emptyResponse} }
如果你想说得非常具体:

interface ResponseStatus {
  [key: 'emptyResponse' | 'unsuccessfulResponse' | 'successfulResponse' | 'badResponse' ]: boolean;
}

否则,上面Oleg的答案应该可以做到:

只需创建接口ResponseStatus{emptyResponse:boolean,unsuccessfulResponse:boolean..您可以附加每个可能不存在的属性名?使其成为可选的,然后应用该类型:UseState谢谢您将尝试一下!另一个快速问题-如果我有一个包含JSON对象的变量-您可能知道该变量类型是什么吗?或者如果您不知道该类型'我不知道键是什么,可能是{[key:string]:boolean}。不,我们无法告诉您某个随机JSON对象的变量是什么,因为我们不知道其中包含什么。您也可以使用@jam_-swagger:请注意,虽然此解决方案可能最不冗长,但它不会给您提供太多的类型安全性,即使与任何解决方案相比,它也不会检查特定属性ies存在/缺失,对于正确的属性名称也不重要。@YevgenGorbunkov您完全正确,但如果您寻求一种方法来实现某种类型安全并充分受益于TypeScript,则有时记录构造可能非常有用,我会说,您必须尽可能具体,否则,t他认为TS的使用只是形式上的,对于一些额外的代码来说,这只是一个毫无意义的麻烦。
interface ResponseStatus {
  [key: 'emptyResponse' | 'unsuccessfulResponse' | 'successfulResponse' | 'badResponse' ]: boolean;
}