首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有办法禁用任何类型与其他类型的比较?

有没有办法禁用任何类型与其他类型的比较?
EN

Stack Overflow用户
提问于 2020-06-22 20:44:41
回答 1查看 251关注 0票数 0

Typescript在检查不同类型时有非常酷的错误信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let strange_boolean = true;
let strange_string: string = "1";
console.log(strange_boolean == strange_string);
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
error: TS2367 [ERROR]: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap.
console.log(strange_boolean == strange_string);
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

但是这段代码会编译:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let strange_boolean: any = true;
let strange_string: string = "1";
console.log(strange_boolean == strange_string);

因为可以将any转换为anything ...

但是如果我想以某种方式禁用从any到任何东西的隐式转换怎么办?Typescript对此有什么标志吗?我希望这段代码只在这种情况下编译:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let strange_boolean: any = true;
let strange_string: string = "1";
console.log(String(strange_boolean) == strange_string);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let strange_boolean: any = true;
let strange_string: string = "1";
console.log(Boolean(strange_boolean) == Boolean(strange_string));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-16 12:08:44

不幸的是,目前还没有这样的可能性。

我已经创建了issue https://github.com/microsoft/TypeScript/issues/39209,但它被关闭了,因为Typescript团队不想破坏any的反向可比性,这是不幸的,因为如果他们添加这个标志,那么代码就会变得比"Vanilla“JavaScript更安全

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

https://stackoverflow.com/questions/62523205

复制
相关文章
[数据结构与算法] 链表的其他类型
单链表是最简单的链表,单链表的一种变形就是循环单链表,其中最后一个结点的next域不用None,而是指向表的第一个结点,这样就形成了一种循环结构,所以叫循环单链表。 双链表:单链表只有1个方向的链接,只能做一个方向的扫描和逐步操作。单链表的next指针域指向下一个结点,而双链表结点除了具有next指针外,还有一个previous指针,指向上一个结点。单链表中查找元素只能从头结点开始,根据他的next指针域找到下一个结点,而双链表最大的区别在于不仅能找到下一个结点,还能找到上一个结点。 循环双链表:然后看下什
用户1622570
2018/04/12
8940
没有任何类型 Windows 的外层实例可访问---Java内部类与外类型
没有任何类型 TestThread 的外层实例可访问。必须用类型 TestThread 的外层实例(例如,x.new A(),其中 x 是 TestThread 的实例)来限定分配。
似水的流年
2019/12/08
1.1K0
没有任何类型 Windows 的外层实例可访问---Java内部类与外类型
Java内部类与外部类 错误提示: 没有任何类型 TestThread 的外层实例可访问。必须用类型 TestThread 的外层实例(例如,x.new A(),其中 x 是 TestThread 的实例)来限定分配。 public class CarTest { public class Car{ String engine; String Wheel; public void run(){ System.out.println("汽车在奔跑"); } } /
似水的流年
2018/01/18
1.5K0
Date类型与String类型转换或转为其他日期格式
这种方式只会具体到天,暂时我也没有找到可以具体到时分秒的API或方法,有知道的小伙伴可以评论、私信滴滴我,感谢。
关忆北.
2021/12/07
9880
【转】string类型和其他类型的值的互转
由于在开发过程中遇到类型转换问题,比如在web中某个参数是以string存在的,这个时候需要转换成其他类型,这里官方的strconv包里有这几种转换方法。
yiduwangkai
2019/09/17
1.4K0
Integer类型比较的问题
工作几年了,居然还是出现这个问题,最近做websocket通信,其中在SystemWebSocketHandler类中的一个代码片段,判断条件如下: /** * 给当前组发消息 * @Author 张志朋 * @param session * @param message void * @Date 2016年8月9日 * 更新日志 * 2016年8月9日 张志朋 首次创建 * */ @Supp
小柒2012
2018/04/13
1.2K0
MySQL其他类型常用函数
INET_ATON(IP)和INET_NTOA(num)函数主要的用途是将字符串的IP地址转换为数字表示的网络字节序,这样可以方便地进行IP或者网段的比较。 比如下面的表,想要知道192.168.1.1和192.168.1.10之间一共有多少IP地址。
秋白
2019/02/21
7510
MySQL其他类型常用函数
go的数据类型-其他数据类型-function(二)
函数类型可以像其他类型一样被传递、嵌套和返回。例如,下面的示例演示了如何将一个函数类型作为参数传递给另一个函数:
堕落飞鸟
2023/04/20
3160
go的数据类型-其他数据类型-interface(二)
在Go语言中,接口可以被用来定义变量和函数参数类型。例如,下面的示例演示了如何定义一个接口类型的变量和函数参数:
堕落飞鸟
2023/04/20
2840
go的数据类型-其他数据类型-pointer(二)
在Go语言中,我们也可以使用指针数组来存储多个指针。指针数组是一个数组,其每个元素都是指针类型。我们可以使用数组下标和*运算符来访问指针数组中的元素,如下所示:
堕落飞鸟
2023/04/20
3300
go的数据类型-其他数据类型-pointer(四)
指针类型变量不能直接与非指针类型变量进行比较,需要先将指针类型转换为对应的非指针类型。
堕落飞鸟
2023/04/20
3200
go的数据类型-其他数据类型-function(一)
函数是Go语言中一种非常重要的数据类型,它可以被用来定义和调用函数,从而实现程序的模块化和代码复用。
堕落飞鸟
2023/04/20
4780
go的数据类型-其他数据类型-interface(一)
在Go语言中,接口(Interface)是一种特殊的类型,它定义了一组方法签名,但没有实现这些方法的代码。接口可以被任何实现了这些方法的类型实现,从而实现多态性和代码复用。
堕落飞鸟
2023/04/20
3550
go的数据类型-其他数据类型-interface(三)
在Go语言中,接口可以嵌套在其他接口中,以形成更复杂的接口。例如,下面的示例定义了一个名为Animal的接口,它包含一个名为Move的方法。然后,我们定义了一个名为Bird的接口,它嵌套了Animal接口,并包含一个名为Fly的方法。
堕落飞鸟
2023/04/20
3210
go的数据类型-其他数据类型-pointer(三)
在Go语言中,我们可以使用指向结构体的指针来操作结构体的成员。一个指向结构体的指针指向结构体的第一个成员的地址。
堕落飞鸟
2023/04/20
2820
go的数据类型-其他数据类型-pointer(一)
在Go语言中,指针是一种非常重要的数据类型。它们允许我们直接访问内存中的数据,并对其进行修改。本文将介绍Go语言中指针的概念、声明、使用、空指针、指针数组、指向结构体的指针等相关内容,并给出示例。
堕落飞鸟
2023/04/19
6321
go的数据类型-其他数据类型-channel(一)
在Go语言中,Channel是一种特殊的数据类型,用于在Goroutine之间进行通信和同步。通过Channel,一个Goroutine可以向另一个Goroutine发送数据或接收数据。这使得Goroutine之间的通信变得非常简单和有效。
堕落飞鸟
2023/04/20
6461
go的数据类型-其他数据类型-channel(二)
以下是一个使用Channel的示例程序,该程序创建了两个Goroutine,并使用Channel在它们之间进行通信和同步。
堕落飞鸟
2023/04/20
8151
double类型大小比较的方法
在Java中,int类型数据的大小比较可以使用双等号,double类型则不能使用双等号比较大小,那若使用double类型时怎么进行比较呢?
算法与编程之美
2023/01/04
2.2K0
double类型大小比较的方法
mysql 字段时间类型的比较
字段的时间类型分为: ,,,,; 下面就分别介绍这几种时间类型的区别 每个时间类型都有一个有效范围和一个零值,当指定的类型的值超过有效范围时,就会使用零值 YEAR 该类型表示年,格式为 有三种表示方法 直接使用四位数字或字符串,范围是1901-2155,输入的格式为’YYYY’或YYYY,如输入‘2011’或2011就回直接保存为2011,若超过范围就会表示为0000 使用两位的字符串表示,如果插入为’00’-‘69’则表示为2000-2069,若插入’70-99’则表示为1970-1999.如输入’
企鹅号小编
2018/02/08
4.7K0
mysql 字段时间类型的比较

相似问题

任何与通用类型和未知类型之间的比较

16

C:使类型与任何其他类型不兼容

22

有没有办法获得任何文件类型的拇指?

23

有没有办法将原始类型与其对应的包装器类型进行比较?

119

Datetime类型与Date类型的比较

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文