类型检查器强制执行给定编程语言中的表达式是良好类型的 - 即符合特定类型系统的规则。
I在FF 3.6和IE 8中测试了以下代码。为什么这是在两个浏览器中如何完成相同行为的?谢谢! true Edit:关于您的问题下的评论,听起来您需要测试DOM元素和位置对象之间的差异。 您可能会使用false属性对DOM元素进行测试。 <!DOCTYPE html> <html> <head> <script> alert(window.location instanceof Location); </script> </head> <body> </body> </html> 如果找不到nodeType,您可以测试各种属性,只是为了确定它是一个对象。 if( obj.nodeType ) { // it was a DOM element } 原始答案: 在Chrome,Safari,Firefox中,这对我有用: nodeType 不过,我无法在此分钟进行IE测试。 this是eCmascript Spec中指出的方法Section8.6.2获取内部location属性名称。 if( obj.nodeType ) { // it was a DOM element } else if( obj.hostname && obj.pathname ) { // it was a location object } else { // some ERROR } IE和Firefox的工作;在Chrome中不起作用。 (Chrome中没有Object.prototype.toString.call(window.location) == '[object Location]'; 对象。)仅当您从脚本运行的同一窗口测试位置时才有效,但是。 你真的想做什么? 测试位置对象的一种方法是使用[[Class]]检索Getter函数,然后尝试在对象上使用它。这在IE中不起作用,因此IE仅比较location.constructor == Location ,如果它是位置对象,则可以评估Location。 检查可能会抛出TypeError,这意味着它不是位置对象。但是,如果任何一个检查都抛出了其他东西,例如Domexception,这意味着它是一个位置对象,因为尝试从不同来源的位置对象读取domexceptions。 这是函数: Object.prototype.__lookupGetter__I选择了obj!=obj.href,因为它与旧浏览器具有更好的兼容性,尽管不太可能从现代浏览器中删除。浏览器不支持false,例如Internet Explorer倒退到the to false或如果OBJ是位置对象,将返回false或抛出domexception。 要回答OP的原始问题,Internet Explorer中的原因是因为function isLocation(obj) { var lookupGetter = {}.__lookupGetter__// deprecated , getHREF = lookupGetter && lookupGetter.call(location, 'href') try { // getHREF throws TypeError or returns undefined if obj is not a location object // if getHREF returns a URL or throws a DOMException that means it's a location object var notLocation = getHREF? !getHREF.call(obj): obj!=obj.href } catch(e) { notLocation = e instanceof TypeError } return !notLocation } 是主机对象,尤其是在那些日子里,主机对象没有遵守规则。此外,Internet Explorer未能遵循标准,因为当时IE是领先的浏览器,而这就是Microsoft所关心的。
鉴于: 类 Rx { 构造函数( _dependency: { [k in keyof F]: Rx }, _计算:(...args:F)=> T, ) { } } 常量四十...
在此片段中: 从输入导入字典,可选 T类: def __init__(自身): 自我.bla = {} def t(self) -> 字典: 如果 self.bla 为 None: self.bla = {'不是没有...
我正在使用Google脚本,我想检查单元格的类型,如果它是字符串,则执行某些操作,如果是数值,则执行其他操作。 我找不到像 isString 或 isText 这样的函数。 我在这里...
考虑以下代码,它对整数 mod n 进行建模: def IntegersModN(n): 类内部类: def __init__(自身, x): self.x = x % n def __add__(自己,其他...
是否可以根据Python中的__init__签名进行类型检查?
假设我有一个函数,它可以创建传入类的实例。 def instantiate[T](class_: type[T], a: int, b: str) -> T: 返回类_(a, b) 我希望类型检查器能够判断一个类...
我正在构建一个商店管理系统,其中不同的商店组件需要在彼此之间导航。我遇到了循环导入问题,目前通过在 m 内部导入来解决它们...
Next.js 13.5.6 ->“npm run build”-如果文件名以小写字母开头,则命令不会类型检查页面文件夹中的 .tsx 文件
我正在将现有的 Next.js 项目(版本 13.5.6)迁移到 TypeScript。我在页面目录中添加了一个简单的 test.tsx 文件,其中有两个基本类型错误: const 测试 = (props) =...
在 Typescript/Javascript 中使用 .filter 方法时如何对临时变量进行类型检查
一个简单的问题,我遇到了一些问题 我有一个简单的方法 函数 doSomething() { const getSomeVariableFromAFunction = getSomeFromFunction.filter(foo => foo.id === bar.id).map(fo...
当参数之一是接口时,Visual Studio 似乎会停止类型检查函数参数。 考虑以下几点: ' 接口和实现它的类: 公共接口...
scala> A 类 定义A类 scala> B 类 定义B类 scala> val a: A = 新 A a: A = A@551510e8 scala> 匹配 { | case _: B => println("不太可能") |案例 _ =>
有没有办法让 SQL Server 验证存储过程中的对象引用?
以下代码在 SQL Server 中执行正常 创建过程 IamBrokenAndDontKnowIt 作为 从不存在的表中选择 * 当然,如果我尝试运行它,它会失败 无效的对象名称 '
我想编写一个像 printf 这样的例程,不是功能上的,而是我希望例程具有与 printf 相同的编译检查特性。 例如,如果我有: { 整数...
当我有这样的代码时: C级:通过 def f1( c : C ) : 通过 f1(100) def f2( c : C = None ) : 通过 f2(100) 然后 mypy 声称错误如下: $ mypy 002_1.py 002_1.py:11:错误:争论...
在java中,你不能这样做 对象 x = y; 对象 y = null; 但你可以这样做: 类 A { B bref = null; } B 类{} 为什么会这样呢? 谁能解释一下,在第二种情况下,comp...
我正在尝试在 Typescript 中创建一个原始的 JSON 存储。我偶然发现了这篇关于输入 JSON 序列化的文章。然而,我在尝试使用泛型时遇到了问题。 类型
我需要检查 __init__() 中的参数类型。我是这样做的: 类矩阵: def __init__(自身,矩阵): ”“” if type(matrix) != list 引发参数错误 ...
需要一种方法来检查对象是否是某个特定模块中任何类的实例。 我知道我可以通过从该模块显式导入每个类并检查元组来做到这一点: 来自我的_...
我应该先将 mypy 转换为字符串,然后再转换为 int 吗?
我有一个配置加载到字典中。它包含一个整数配置[“logging”][“backup_count”]。但是, type(config["logging"]["backup_count"]) 返回 o...