在TypeScript3.4中解构对象时,我可以执行以下操作:
interface IObject {
...
}
const {loading, data, error}:{loading: boolean, data: IObject, error: string} = myResponseObject;
但是,在我的例子中,我已经定义了一个响应对象,所以我想指定如下的确切响应类型:
interface IResponse {
loading: boolean;
data: any;
error: string;
}
interface IObject {
...
}
const {loading, data, error}:{data: IObject} = myResponseObject;
基本上,我想取我的
myResponseObject.data: any
类型并在解构时将其转换为myResponseObject.data: IObject
类型,这可能吗? 最佳答案
可以将data
的类型定义为泛型,然后可以在解析器上指定它的类型:
interface IResponse<T = any> {
loading: boolean;
data: T;
error: string;
}
interface IObject {
}
declare const myResponseObject: IResponse;
const { loading, data, error }: IResponse<IObject> = myResponseObject;