typescript vscode部分忽略noImplicitAny

lrl1mhuk  于 2022-12-24  发布在  TypeScript
关注(0)|答案(1)|浏览(204)

我有一个nest.js类型脚本项目,我的tsconfig.json如下

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "skipLibCheck": true,
    "strictNullChecks": true,
    "noImplicitAny": true,
    "strictBindCallApply": true,
    "forceConsistentCasingInFileNames": true,
    "noFallthroughCasesInSwitch": true
  }
}

当我使用nest build编译时,我得到了几个Parameter 'item' implicitly has an 'any' type.错误。
例如在这个方法上

async findAll() {
    const result = await this.prismaService.partnership_certificate.findMany();
    return result.map((item) => new PartnershipCertificate(item));
  }

问题是vscode不像编译器那样用错误标记该方法
我注意到,当尝试这种说法时(正如SO上的一个答案所建议的那样)

const func = (test) => alert(test);

vscode确实产生了正确的错误(关于“any”类型)我不确定此语句和上面的方法之间有什么区别,但根据编译输出,它们都产生了错误

ws51t4hk

ws51t4hk1#

我认为在第一个语句中,IDE足够智能,可以为item指定一个类型,因为您Map的是PartnershipCertificate & {_id: Types.ObjectId;}数组,因此不会显示任何错误
但在第二条语句中,它没有任何信息,因此无法猜测item类型,因此错误很明显

相关问题