在下面的示例中,我想验证数据是否确实为med提供了具有属性project
的id
。
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
}