在下面的示例中,我想验证数据是否确实为 med 提供了一个具有属性 id
的 project
。
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] Object is possibly 'null' (referring to project and the use of project.id)
从这里开始什么是好的行动方案:
- 我应该用 js 而不是 ts 编写测试吗?
- 我是否应该找到一个带有 TypeScript 预处理器的测试框架,以允许我在测试预期中使用 TypeScript 类型? (我认为这不存在)
- 是否应该通过某种 json 验证方案而不是玩笑测试来进行这些类型的检查?
最佳答案
getActiveProject
的结果类型是 Project |空
。如果您确定 let project
不为空,您可以通过 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
}
关于typescript - 在使用 jest 测试数据对应于 TypeScript 类型时避免警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54568644/