Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 仅对定义文件允许隐式任意_Typescript_Typescript Typings - Fatal编程技术网

Typescript 仅对定义文件允许隐式任意

Typescript 仅对定义文件允许隐式任意,typescript,typescript-typings,Typescript,Typescript Typings,我正在使用TypeScript,在我的tsconfig.json中设置了“noImplicitAny”:true选项 我正在使用管理类型定义文件,并在我的应用程序入口点中使用引用路径指令将其包括在内: /// <reference path="./typings/index.d.ts" /> // 问题是一些定义文件依赖于隐式any,所以现在我从.d.ts文件中得到了很多编译错误 是否有办法禁用/消除这些错误,例如基于路径或文件类型?随着TypeScript 2.0的发布,引入了

我正在使用TypeScript,在我的
tsconfig.json
中设置了
“noImplicitAny”:true
选项

我正在使用管理类型定义文件,并在我的应用程序入口点中使用引用路径指令将其包括在内:

/// <reference path="./typings/index.d.ts" />
//
问题是一些定义文件依赖于隐式any,所以现在我从
.d.ts
文件中得到了很多编译错误


是否有办法禁用/消除这些错误,例如基于路径或文件类型?

随着TypeScript 2.0的发布,引入了编译器选项,它应该可以解决您的问题:

TypeScript 2.0添加了一个新的
--skipLibCheck
编译器选项,该选项导致跳过声明文件(扩展名为
.d.ts
的文件)的类型检查。当程序包含大型声明文件时,编译器会花费大量时间检查已经知道不包含错误的声明类型,并且跳过声明文件类型检查可能会显著缩短编译时间

由于一个文件中的声明可能会影响其他文件中的类型检查,因此在指定
--skipLibCheck
时可能无法检测到某些错误。例如,如果非声明文件扩充声明文件中声明的类型,则可能会导致仅在检查声明文件时报告的错误。然而,在实践中,这种情况是罕见的

它默认为
false
,可以在
tsconfig.json
中启用:

{
    "compilerOptions": {
        "skipLibCheck": true,
        ...
    },
    ...
}

如果需要在单个导入行上允许隐式any,则可以在非类型化模块导入之前使用
/@ts ignore
属性 它将忽略隐含的any(以及下面一行中所有其他可能的错误,因此由您来纠正) 但是它非常简单,很快就解决了我的很多头痛问题

例如,对于字体真棒5,我已经

//@ts-ignore
import fontawesome from '@fortawesome/fontawesome';
//@ts-ignore
import regular from '@fortawesome/fontawesome-free-regular';

fontawesome.library.add(regular);

另外,它可以与webpack一起使用

您是否尝试将第二个tsconfig.json文件放入
“noImplicitAny”:false
typings/
目录?另一种可能的解决方案是将
tsconfig.json
文件放在包含源代码的目录中,例如
src/
,而不是放在项目根目录中。@Terite感谢您的建议。我尝试将第二个
tsconfig.json
文件添加到
typings
目录,但仍然出现错误。我不想重组我的项目,但我不确定这样做是否有效,因为
.d.ts
文件仍将包括在内。