【发布时间】:2021-07-10 10:02:12
【问题描述】:
刚才我问了this question,现在我有一个跟进的:)
请考虑以下代码:
import { ClassConstructor } from "class-transformer";
import { useQuery as useApolloQuery } from "@apollo/client";
class Book {
readonly many = "books" as const;
bookData: any;
}
export const useQueryWrapper = <T>(cls: ClassConstructor<T>, queryString) => {
return useApolloQuery<{ [cls.prototype.many]: T[] }>(queryString);
};
const { data } = useQueryWrapper(Book, "..."); // Book or any other class with a literal `many` prop
TS 将数据识别为以下类型:
const data: {} | undefined
我想让 TS 知道 data 有一个属性 books
const data: {
books: Book[];
} | undefined
有可能吗?
【问题讨论】:
标签: typescript typescript-typings apollo-client typescript-generics class-transformer