typescript - 在使用 jest 测试数据对应于 TypeScript 类型时避免警告

标签 typescript testing

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

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/

相关文章:

javascript - 是的架构 : How to add new line in error message

javascript - 如何在LEVEL 3的表单提交中获取LEVEL 4's select element'的值?

scala - Specs 隐式转换与 Scala Predef 冲突

Javascript 测试 - 使用 axios 验证授权 header 是否正确

python - 实例化 tf.test.TestCase 时出现 test_session 弃用警告

javascript - 特定 javascript 实例化模式的正确 typescript 定义是什么

typescript - TypeScript 如何理解这种情况?

javascript - 这个在树中查找节点的简单递归函数有什么问题?

css - 在 Selenium 中将 Xpath 定位器转换为 CSS 定位器

ios - Xcode 4 - 一键构建到多个设备?