首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TS2339: never类型上不存在属性“getBoundingClientRect”

TS2339是TypeScript编译器的一个错误代码,表示在never类型上不存在属性“getBoundingClientRect”。

never类型是TypeScript中的底层类型,表示永远不会发生的值。它通常用于表示函数的返回类型,当函数抛出异常或者永远不会返回时,返回类型可以标注为never。

属性“getBoundingClientRect”是DOM API中的一个方法,用于获取元素的大小及其相对于视口的位置。然而,由于never类型表示永远不会发生的值,因此无法调用该类型上的方法或访问其属性。

在解决这个错误时,需要检查代码中的类型推断或类型注解是否正确。确保变量或表达式的类型不是never类型,以便可以安全地调用“getBoundingClientRect”方法。

需要注意的是,以上答案是基于给定的错误代码和问题描述,如果有更多上下文信息或代码示例,可能会有更准确的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深度讲解TS:这样学TS,迟早进大厂【11】:类型断言

当我们引用一个在此类型不存在属性或方法时,就会报错: const foo: number = 1; foo.length = 1; // index.ts:2:5 - error TS2339:...上面的例子中,数字类型的变量 foo 是没有 length 属性的,故 TypeScript 给出了相应的错误提示。 这种错误提示显然是非常有用的。...上面的例子中,我们需要将 window 添加一个属性 foo,但 TypeScript 编译时会报错,提示我们 window 不存在 foo 属性。...此时我们可以使用 as any 临时将 window 断言为 any 类型: (window as any).foo = 1; 在 any 类型的变量,访问任何属性都是允许的。...,那么被断言为父类,获取父类的属性、调用父类的方法,就不会有任何问题,故「子类可以被断言为父类」 需要注意的是,这里我们使用了简化的父类子类的关系来表达类型的兼容性,而实际 TypeScript 在判断类型的兼容性时

1.2K20

TypeScript学习笔记(二)—— TypeScript基础

: number; } let tom: Person = { name: 'Tom', age: 25 }; 可选属性的含义是该属性可以不存在。...当我们引用一个在此类型不存在属性或方法时,就会报错: const foo: number = 1; foo.length = 1; // index.ts:2:5 - error TS2339:...上面的例子中,数字类型的变量 foo 是没有 length 属性的,故 TypeScript 给出了相应的错误提示。 这种错误提示显然是非常有用的。...上面的例子中,我们需要将 window 添加一个属性 foo,但 TypeScript 编译时会报错,提示我们 window 不存在 foo 属性。...此时我们可以使用 as any 临时将 window 断言为 any 类型: (window as any).foo = 1; 在 any 类型的变量,访问任何属性都是允许的。

5K20

TypeScript

function infiniteLoop(): never { while (true) {} } Object interface Person { name: string;...any 但有的时候,我们非常确定这段代码不会出错,比如下面这个例子: window.foo = 'foo'; // index.ts:1:8 - error TS2339: Property 'foo...当我们向 window 添加一个 foo 时,会报错示我们 window 不存在 foo 属性。...当然,现在的编译器足够聪明,调用的时候可以不传递类型,编译器可以自己识别的 传递类型时,这个类型在函数中使用时的方法/属性,必须是存在的,或者继承自某个接口。...这里我有意使用不同的变量名,以表明类型值沿链向上传播,且与变量名无关。 #泛型约束 确保属性存在 当我们在函数中获取length属性,在类型为number时,是没有length的,所以会报错。

1.8K10

5 个 JavaScript “罕见”原生的 API

闲言少叙,开冲~~ window.getComputedStyle() window.getComputedStyle()方法返回一个 CSSStyleDeclaration 对象,与 style 属性类型相同...pseudo-element]) // or window.getComputedStyle(element, [pseudo-element]) 它有两个参数,第一个是计算样式的元素,第二个是伪元素;若伪元素不存在...// Haskell console.log(window.getComputedStyle(node, '::after').content) getBoundingClientRect...() 该Element.getBoundingClientRect()方法返回一个 DOMRect 对象,该对象提供元素大小及其相对于视口的位置信息; 用法如下: domRect = element.getBoundingClientRect...const positionLeft = topElement.scrollLeft + rect.left; once: true once: true 可不是 API,它长得也不像 API,它是用来做属性配置的

40020

读Zepto源码之属性操作

左边表达式不用说,肯定是字符串类型,右边的如果为字符串类型,并且和左边的值相等,那表示 value 为数字字符串,可以用 +value 直接转换成数字。...propMap 是将一些特殊的属性做一次映射。 prop 取值和设置值的时候,都是直接操作元素对象属性,不需要调用如 setAttribute 的方法。...这个我也不太明白,因为在获取值时,attr 方法对不存在属性返回值为 undefined ,用 !== undefined 判断会不会更好点呢?...var parent = this.offsetParent || document.body 获取元素的 offsetParent 属性,如果不存在,则默认赋值为 body 元素。...具体参见文档: Element.getBoundingClientRect() 因为 getBoundingClientRect 获取到的位置是相对视窗的,因此需要将视窗外偏移量加上,即加上 window.pageXOffset

1.8K00

深度讲解TS:这样学TS,迟早进大厂【19】:泛型

泛型约束§ 在函数内部使用泛型变量的时候,由于事先不知道它是哪种类型,所以不能随意的操作它的属性或方法: function loggingIdentity(arg: T): T { console.log...(arg.length); return arg; } // index.ts(2,19): error TS2339: Property 'length' does not exist on...上例中,泛型 T 不一定包含属性 length,所以编译的时候报错了。 这时,我们可以对泛型进行约束,只允许这个函数传入那些包含 length 属性的变量。...,其中要求 T 继承 U,这样就保证了 U 不会出现 T 中不存在的字段。...[i] = value; } return result; } createArray(3, 'x'); // ['x', 'x', 'x'] 进一步,我们可以把泛型参数提前到接口名

59730

全网最全的,最详细的,最友好的 Typescript 新手教程

any是一个“松散的”TypeScript类型。这意味着:这个变量可以是任何类型:字符串,布尔值,对象,真的,我不在乎。这实际就像根本没有类型检查一样。...url"属性不存在类型字符串TypeScript。...除了字符串、数组和数字,TypeScript还有很多其他类型。 有布尔值,元组,"any", never,枚举。假以时日,你会全都学会的。如果您好奇,请查看基本类型的文档。 现在让我们继续扩展接口。...这是因为接口上的一些属性是可选的,可能是未定义的,并且类型并不总是字符串(例如id是一个数字)。...那么在接口和类型之间应该使用什么呢?我更喜欢复杂对象的接口。TypeScript文档也建议了一种方法: 因为软件的理想属性是对扩展开放的,所以如果可能的话,应该始终在类型别名使用接口。

6K40

【TypeScript】TS类型声明(四)

any(任意类型)声明变量类型为any时编译时会绕过所有类型的检测,直接通过编译阶段的检查可以任意访问属性的方法和属性any类型可以赋值给任意类型如果变量初始没有定义类型,默认为any;经过赋值后,TS...类型,any类型可以赋值给任意类型unknown,never 都不允许执行变量的方法以及访问内部属性在unknown没有被断言或细化到一个确切类型之前,unknown不可以赋值给其它类型,除了它自己和any...(不存在的值类型never类型表示永不存在的值的类型。...具有以下特点:never类型是所有类型的子类型,即never类型可以赋值给任何类型。其他任何类型均不是never类型的子类型,即其他类型均不可赋值给never类型,除了never本身。...即使any类型也不可以赋值给never类型。返回类型never的函数中,其终点必须是不可执行的,例如函数过程中抛出了错误或者存在死循环。

18410

getBoundingClientRect方法获取元素在页面中的相对位置

获取元素位置可以用 offset 或 getBoundingClientRect,使用 offset 因为兼容性不好,比较麻烦,offset获取位置会形成“回溯”。...而 getBoundingClientRect 方法则 兼容性较好,基本所有的浏览器都支持了,且使用起来更容易和简单。...1.使用语法: element.getBoundingClientRect(); 方法中没有任何参数,返回值为对象类型。...2.在IE8及以下的浏览器中,返回值对象包含的属性值有: top::元素上边缘距离文档顶部的距离; right: 元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离; left:...元素左边缘距离文档左边的距离; 3.在IE9以上、谷歌、火狐等浏览器中,返回值对象包含的属性值有: top: 元素上边缘距离文档顶部的距离; right:元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离

3.8K20
领券