我有一个store ,我想在其中适当地管理ID.假设我有以下帖子store :

type Post = {
  id: number;
  title: string;
  body?: string;
}

type Store = {
  postId: number | null;
  posts: Post[];
  addPost: (post: Omit<Post, "id">) => Promise<void>;
  updatePost: (id: number, post: Partial<Post>) => Promise<void>;
};

如果 Select 了帖子,则将postID设置为选定的帖子ID.我想告诉TypeScrip,这个postID总是/应该总是出现在帖子中.因此,我可以肯定,如果我想找到合适的职位,它总是在那里.

在打印脚本中有什么方法可以做到这一点吗?

大概是这样的:

type Store = {
  postId: (number in StoreType.posts.key<"id">) | null;
  posts: Post[];
  // ...
};

推荐答案

不,没有办法做到这一点.

这取决于运行时动态,而运行时动态超出了TS的判断范围.TS无法计算出,当您设置id时,数组中也有一个具有该id的项.

Typescript相关问答推荐

如何使用Generics保留构造函数的类型信息?

如何根据数据类型动态注入组件?

从接口创建类型安全的嵌套 struct

TypScript手册中的never[]参数类型是什么意思?

TypeScript Page Routing在单击时不呈现子页面(React Router v6)

接口的额外属性作为同一接口的方法的参数类型'

返回同时具有固定键和变量键的对象的函数的返回类型

泛型函数即使没有提供类型

对数组或REST参数中的多个函数的S参数进行类型判断

ANGLE独立组件布线错误:没有ActivatedRouting提供程序

记录键的泛型类型

如何从扩展接口推断泛型?

在React中定义props 的不同方式.FunctionalComponent

TYPE FOR ARRAY,其中每个泛型元素是单独的键类型对,然后在该数组上循环

有没有可能创建一种类型,强制在TypeScrip中返回`tyPeof`语句?

如何避免多个类型参数重复?

导航链接不触发自定义挂钩

如何按成员资格排除或 Select 元组?

Typescript 子类继承的方法允许参数中未定义的键

为什么 Typescript 无法正确推断数组元素的类型?