gpt4 book ai didi

typescript - create-react-app --template typescript — 是否可以暂时禁用类型检查?

转载 作者:行者123 更新时间:2023-12-04 13:10:40 25 4
gpt4 key购买 nike

我正在使用 TypeScript 开发一个 create-react-app,它会在我的前端文件夹中使用 "include": "/src" 自动生成一个 tsconfig|每次我运行应用程序时,即使我删除了文件或更改了它。
有没有办法在 TS cra 中禁用类型检查(不弹出)?

最佳答案

禁用类型检查
CRA 使用 Babel 编译器
Babel是 Flow、JSX 和 TypeScript 的第三方编译器,并结合了它。通天塔不实现类型检查 , CRA 使用来自 TypeScript Compiler 的一些方法和来自 TSLint 的一些方法。所以即使存在类型错误,Babel 也可以编译代码,因为 Babel 看不到它。将此添加到环境中:TSC_COMPILE_ON_ERROR=true更多详情请见 CRA documentation
一个文件禁用
使用 // @ts-nocheck/* tslint:disable */ (取决于 CRA 的版本)在文件的开头。
避免使用类型和使用 any类型
此外,在 TypeScript 中,以这种方式定义的类型可能是可选的。所以如果在 tsconfig.json 中使用就不能使用

{
"compilerOptions": {
///...
"strict": false
}
}
由于您遇到的最大痛苦似乎是为外部库查找类型定义,因此您可以为不想进行类型检查的任何变量创建环境定义:
declare var variableName: any;
// better in .d.ts files
例如,对于 jQuery,它将是 declare var $: any; .那么你可以这样做: $("#test").myNonExistentFunction();如果你想要。
或者,当使用 es2015 模块时,可以执行以下代码以允许导入库:
declare module "jquery" {
var _temp: any;
export = _temp;
}
速记环境模块声明 (TS 2.0+)
在 TS 2.0+ 中,禁用导入类型检查的更好方法是创建 .d.ts文件并定义速记环境模块声明:
declare module "jquery";
// or use a wildcard
declare module "express-*"; // or use "*" to allow everything
这将允许您在不进行类型检查的情况下自由使用这些导入:
import $ from "jquery";

$.something(); // ok at compile time, but will be an error at runtime
也就是说,在这种情况下采取的最佳路径是 .d.ts文件,以根据您使用的内容逐步定义您所依赖的库的接口(interface)。
ts-忽略评论 (TS 2.6+)
可以使用 // @ts-ignore 禁用任何 TypeScript 错误TypeScript 2.6+ 中的注释。例如:
if (false) {
// @ts-ignore: Unreachable code error
console.log("hello");
}
@ts-expect-error评论 (TS 3.9)
期望错误比忽略更好、更安全、更稳定。请注意,它适用于下一行代码,这意味着您可以在代码和 @ts-expect-error 之间使用注释。 .
// @ts-expect-error
/* I will override error */
//
var num: string = 3;
没有不同?尝试使用此规则:
ts-expect-error如果:
  • 您正在编写测试代码,您实际上希望类型系统在操作中出错
  • 您希望修复程序很快就会出现,而您只需要一个快速的解决方法
  • 您在一个规模合理的项目中,有一个积极主动的团队希望在受影响的代码再次有效时删除抑制注释

  • ts-ignore如果:
  • 您有一个更大的项目,并且在没有明确所有者的代码中出现了新错误
  • 您正处于两个不同版本的 TypeScript 之间的升级过程中,并且在一个版本中出现一行代码错误,而在另一个版本中却没有。
  • 老实说,您没有时间决定这些选项中哪个更好。

  • 来源: https://stackoverflow.com/a/31089657/14724418 , https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-9.html

    关于typescript - create-react-app --template typescript — 是否可以暂时禁用类型检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65636853/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com