You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TypeScript时should.js报错:Property 'should'不存在于string[]类型

在TypeScript中使用should.js的解决方案

你遇到的Property 'should' does not exist on type 'string[]'错误,本质是TypeScript不知道should.js给原生JavaScript类型(比如数组、对象)扩展的should属性。下面是具体的解决步骤:

  • 第一步:安装should.js的类型定义包
    should.js本身没有自带TypeScript类型声明,所以需要安装社区维护的类型包。在终端运行:

    npm install --save-dev @types/should
    # 或者用yarn
    yarn add --dev @types/should
    # 或者pnpm
    pnpm add -D @types/should
    
  • 第二步:让TypeScript识别should.js的类型
    有两种方式可以实现:

    1. 单文件导入:在你写测试的文件顶部添加导入语句,引入should.js的类型和扩展:
      import 'should';
      
    2. 全局配置:如果你的项目里多个测试文件都要用should.js,可以在tsconfig.json的compilerOptions中添加types字段,把should加进去,这样所有文件都会自动识别:
      {
        "compilerOptions": {
          // 其他配置...
          "types": ["should"]
        }
      }
      
  • 第三步:确保should.js被正确加载
    因为should.js是通过修改原生对象原型链来添加should属性的,所以需要在项目的测试入口(比如setupTests.ts)或者每个测试文件中导入一次should.js,让扩展生效:

    // 导入should.js,触发原型链扩展
    import 'should';
    
    // 现在就可以正常使用should断言了
    Object.keys(res.body.data).should.containEql('id');
    

这样修改后,TypeScript就能识别should属性,错误也就消失了。

内容的提问来源于stack exchange,提问作者Shamoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:51:06