Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeScript -可以禁用类型检查吗?

TypeScript -可以禁用类型检查吗?
EN

Stack Overflow用户
提问于 2015-06-27 08:41:33
回答 3查看 40.4K关注 0票数 28

是否可以在使用TypeScript时禁用类型检查?我喜欢TypeScript的类,接口等,但对于我通常参与的较小的单人项目,我真的不需要类型检查,对于不太常见的库或最新版本的库,找不到现成的类型定义是一种痛苦。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-27 14:10:07

在TypeScript中,当以这种方式定义时,类型可能是可选的。

由于查找外部库的类型定义似乎是您遇到的最大难题,因此您可以为任何不想进行类型检查的变量创建环境定义:

代码语言:javascript
运行
AI代码解释
复制
declare var variableName: any;

例如,对于jQuery,它将是declare var $: any;。如果你愿意,你可以这样做:$("#test").myNonExistentFunction();

或者,当使用es2015模块时,可以执行以下代码以允许导入库:

代码语言:javascript
运行
AI代码解释
复制
declare module "jquery" {
    var _temp: any;
    export = _temp;
}

速记环境模块声明(TS 2.0+)

在TS 2.0+中,禁用导入类型检查的更好方法是在项目中创建一个.d.ts文件,并定义速记环境模块声明:

代码语言:javascript
运行
AI代码解释
复制
declare module "jquery";
// or use a wildcard
declare module "express-*"; // or use "*" to allow everything

这将允许您在不进行类型检查的情况下自由使用这些导入:

代码语言:javascript
运行
AI代码解释
复制
import $ from "jquery";

$.something(); // ok at compile time, but will be an error at runtime

也就是说,在这种情况下,最好的路径是在项目的.d.ts文件中,根据使用的内容逐步定义您所依赖的库的接口。

TS-忽略注释(TS 2.6+)

可以通过在TypeScript 2.6+中使用// @ts-ignore注释来禁用任何TypeScript错误。例如:

代码语言:javascript
运行
AI代码解释
复制
if (false) {
    // @ts-ignore: Unreachable code error
    console.log("hello");
}

这可能会导致使用编译器时出现意想不到的行为,因为它没有经过良好的测试。除非绝对必要,否则我建议不要使用这种方法。

用Babel实现变换

如果不需要类型检查,另一个选择是使用Babel。它支持TypeScript的语法(参见here)。

票数 14
EN

Stack Overflow用户

发布于 2019-11-23 02:13:26

在TypeScript 3.7中,如果文件以以下注释开头,将禁用类型检查:

代码语言:javascript
运行
AI代码解释
复制
// @ts-nocheck

如前所述,在以前的版本中,您可以通过在前一行上包含以下注释来禁用对单行的检查:

代码语言:javascript
运行
AI代码解释
复制
// @ts-ignore
票数 32
EN

Stack Overflow用户

发布于 2015-06-27 08:55:06

是。默认情况下,类型是可选的,除非在项目中启用了noImplicitAny编译器选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31086843

复制
相关文章
泛函编程(33)-泛函IO:Free Functor - Coyoneda
   在前几期讨论中我们终于推导出了Free Monad。这是一个Monad工厂,它可以把任何F[A]变成Monad。可惜的是它对F[A]是有所要求的:F必须是个Functor。Free Monad由
用户1150956
2018/01/05
8950
【基于 JS 的函数式编程 - 4】函子 | MayBe函子 | Monad函子
定义: 函子是一个普通对象,它实现了map函数,在遍历每个对象值的时候生成一个新对象。即,函子是一个实现了 map 契约的对象!
前端修罗场
2023/10/07
2530
【基于 JS 的函数式编程 - 4】函子 | MayBe函子 | Monad函子
函子定律
前段时间学了下 Haskell,看完了《Haskell 趣学指南》,刷了一些题,《Real World Haskell》正在看。因为早先看过《SICP》,有点 FP 的基础,平常写 Swift 也喜欢用些 FP 的技巧,所以暂时没有什么特别颠覆性的感觉。最大的感受是,以前对 Functor、Applicative 和 Monad 的理解太片面了。
Sheepy
2018/09/10
9670
Applicative 函子
Application 函子是一种加强的函子,在 Haskell 的 Control.Applicative 模块中定义了一个 Applicative 类型类:
Sheepy
2018/09/10
7600
【说站】javascript函子是什么
1、作为特殊容器通过普通对象实现,该对象具有map方法,map方法可以运行函数处理值(变形关系)。
很酷的站长
2022/11/23
2570
【说站】javascript函子是什么
JavaScript函数式编程之函子
函子是一个特殊的容器,通过一个普通对象来实现,该对象具有map方法,map方法可以运行一个函数对值进行处理(变形关系),容器包含值和值变形关系(这个变形关系就是函数)。函数式编程中解决副作用的存在
开水泡饭
2022/12/26
1.2K0
Haskell
这门语言在数学模型上有着很深的优势,虽然它有很多特性,让人很难接受,随着学习的深入,你才会发现这会多么有趣。
icepy
2019/06/24
9250
Haskell doctest
一定要注意格式 第一行很重要,-- |这行没有就不是一个 test。 可以对比 >>> 的个数 和 terminal里的 Examples 个数确认是否自己的所有 test 都测试了
莫听穿林
2022/05/20
3300
Haskell doctest
泛函编程(3)-认识Scala和泛函编程
本文介绍了Scala语言中的泛函编程,从类型系统和函数式编程两个角度进行了讲解。首先介绍了Scala的类型系统特性,包括集合操作、类型推导和模式匹配。然后讲解了函数式编程在Scala中的应用,包括尾递归、纯函数、不可变数据结构、柯里化和匿名函数。通过几个示例展示了如何在Scala中实现泛函编程,包括计算第n个斐波那契数、使用高阶函数和匿名函数处理数据。最后介绍了如何使用Scala的函数作为输入参数或返回值,以及如何使用函数文本和匿名函数。
用户1150956
2018/01/04
6140
✨从纯函数讲起,一窥最深刻的函子 Monad
本文为稀土掘金技术社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!
掘金安东尼
2022/10/27
4580
Haskell Platform安装
不懂了,明天写
云深无际
2020/11/03
1.1K0
Haskell Platform安装
haskell 求助
findBonding :: Eq a => (a -> a -> Bool) -> [a] -> Maybe [(a,a)]
用户6797589
2019/12/02
5770
什么是 Monad (Functional Programming)?函子到底是什么?ApplicativeMonad
函数式编程的精髓就在于,我们可以用好多好多小小函数,搭搭搭,组成一个个大函数,最终写出整个程序来。比如我们想写一个函数
一个会写诗的程序员
2018/12/12
4.5K0
Monad
什么是函数(Function)? 函数表达的映射关系在类型上体现在特定类型(proper type)之间的映射。
lambeta
2018/08/17
1.3K0
Monad
从 Java 和 JavaScript 来学习 Haskell 和 Groovy(引子)
我记得刚接触计算机的时候,我就受到了两个非常巨大的错误观念的影响,这个观念最初是来自于老师的传授还是学长的教诲已经记不清了,但是直到我工作几年以后,才慢慢有了实际的体会:
四火
2022/07/19
3870
从 Java 和 JavaScript 来学习 Haskell 和 Groovy(引子)
基类和派生类
  在面向对象设计中,被定义为包含所有实体共性的class类型,被称为“基类”。-百度百科
全栈程序员站长
2022/09/20
1K0
scala(十一) 派生类与派生对象
Scala语言是完全面向对象的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,该对象为单例对象。若单例对象名与类名一致,则称该单例对象这个类的伴生对象,这个类的所有“静态”内容都可以放置在它的伴生对象中声明。
用户1483438
2022/04/15
5380
模块_Haskell笔记2
hiding语法能够缓解命名冲突问题,但不很方便,对于存在大量命名冲突的模块,可以通过qualified保留命名空间来避免冲突
ayqy贾杰
2019/06/12
1.8K0
从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
这是这个系列的最后一篇,从编程范型的角度概览,前面几篇的链接在文章后半部分有汇总。
四火
2022/07/19
5490
从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
从 Java 和 JavaScript 来学习 Haskell 和 Groovy(元编程)
本篇文章的话题是元编程。首先来认识元编程,我在第一篇 《引子》里面已经介绍:元编程,指的是在运行时改变 “类” 的定义,例如访问、增加或修改等等。一言以蔽之,就是 “用程序来写程序”。在第二篇的 《类型系统》里面已经借由继承和接口的实现,介绍了一些利用元编程特性来增加或改变子类行为的方法。回顾语言发展的长河,其实是经历了一个从 “对象 -> 类 -> 元类” 到 “对象 -> 原型” 的发展过程的。所以,无论是类,还是元类,这样的概念其实都不是非有不可的,只是因为我们思考的习惯,特别是抽象的习惯而顺其自然地产生了。这一点我在 《编程范型:工具的选择》里面已经详细描述了,建议在往下阅读前移步。
四火
2022/07/18
5630
从 Java 和 JavaScript 来学习 Haskell 和 Groovy(元编程)

相似问题

Haskell -函子

13

Coyoneda与自由函子的区别是什么?

10

Haskell中的基本函子

12

Haskell :应用函子

14

Haskell fmap函子

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档