首页 > 解决方案 > 如何使用/声明一个不会在 Angular 11 中传递严格和 noImplicitReturns TypeScript 设置的外部模块?

问题描述

我们有一个打开严格模式的 Angular 11 应用程序。compilerOptions它在以下配置中具有以下值tsconfig.json

"strict": true,
"noImplicitReturns": true,

现在我们要使用一个外部库(leaflet geoman)。该库是这样导入的:

import * as L from 'leaflet';
import '@geoman-io/leaflet-geoman-free';

不幸的是,它包括隐式any类型以及隐式any返回类型:

参数 'options' 隐含地具有 'any' 类型。
'setLang' 缺少返回类型注释,隐含地具有“任何”返回类型

如何告诉编译器在编译期间忽略模块中的这些错误,但strict在项目的其余部分保持打开模式?

标签: angulartypescripttypescript-typingstype-hintingleaflet-geoman

解决方案


您可以调用编译器并使用--skipLibCheck标志来实现您想要的。

--skipLibCheckTypeScript 2.0中添加: skiplibcheck

tsc --skipLibCheck

您可以在此线程中阅读有关为什么使用它的更多信息:

TypeScript 编译器参数“skipLibCheck”的使用


推荐阅读