在下面的示例中,我想验证数据是否确实为med提供了具有属性projectid

test('getActiveProject => Project', async () => {
    let previouslyOpenProject = await client.getActiveProject()
    if (!previouslyOpenProject) {
        previouslyOpenProject = await client.createProject();
    }
    let project = await client.getActiveProject();
    expect(project.id).toBeGreaterThanOrEqual(1);
});


我收到以下ts错误消息


  [ts]对象可能是'null'(指项目和使用
  project.id)


从这里开始有什么好的做法:


我应该用js而不是ts编写测试吗?
是否应该找到带有TypeScript预处理程序的测试框架,该框架将允许我在测试期望中使用TypeScript类型? (我认为这不存在)
这些检查是否应该通过某种json验证方案而不是开玩笑的测试来进行?

最佳答案

fo getActiveProject的结果类型为Project | null。如果确定let project不为null,则可以通过let project = await client.getActiveProject() as Project;对其进行映射。

你也可以做这样的事情

let project = await client.getActiveProject(); // without type mapping
if (project !== null) {
  // here project will be Project type, not a Project | null
}

10-04 10:38