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

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

当我们引用一个在此类型上不存在的属性或方法时,就会报错: const foo: number = 1; foo.length = 1; // index.ts:2:5 - error TS2339:...上面的例子中,数字类型的变量 foo 上是没有 length 属性的,故 TypeScript 给出了相应的错误提示。 这种错误提示显然是非常有用的。...但有的时候,我们非常确定这段代码不会出错,比如下面这个例子: window.foo = 1; // index.ts:1:8 - error TS2339: Property 'foo' does not...上面的例子中,我们需要将 window 上添加一个属性 foo,但 TypeScript 编译时会报错,提示我们 window 上不存在 foo 属性。...此时我们可以使用 as any 临时将 window 断言为 any 类型: (window as any).foo = 1; 在 any 类型的变量上,访问任何属性都是允许的。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【TypeScript】007-类型断言

    当我们引用一个在此类型上不存在的属性或方法时,就会报错: const foo: number = 1; foo.length = 1; // index.ts:2:5 - error TS2339:...上面的例子中,数字类型的变量 foo 上是没有 length 属性的,故 TypeScript 给出了相应的错误提示。 这种错误提示显然是非常有用的。...但有的时候,我们非常确定这段代码不会出错,比如下面这个例子: window.foo = 1; // index.ts:1:8 - error TS2339: Property 'foo' does not...上面的例子中,我们需要将 window 上添加一个属性 foo,但 TypeScript 编译时会报错,提示我们 window 上不存在 foo 属性。...此时我们可以使用 as any 临时将 window 断言为 any 类型: (window as any).foo = 1; 在 any 类型的变量上,访问任何属性都是允许的。

    3600

    基础篇章:关于 React Native 之 Touchable 系列组件的讲解

    在Android设备上,这个组件利用原生状态来渲染触摸的反馈。目前它只支持一个单独的View实例作为子节点。...在底层实现上,实际会创建一个新的RCTView结点替换当前的子View,并附带一些额外的属性。而且原生触摸操作反馈的背景可以使用background属性来自定义。...属性 同理,TouchableNativeFeedback继承于TouchableWithoutFeedback,所以TouchableWithoutFeedback得属性,我们都可以使用,这里就不重复介绍了...background 决定在触摸反馈的时候显示什么类型的背景。它接受一个有着type属性和一些基于type属性的额外数据的对象。...TouchableNativeFeedback.Ripple(color, borderless) - 会创建一个对象,当按钮被按下时产生一个涟漪状的背景,你可以通过color参数来指定颜色,如果参数borderless

    2K90

    基础篇章:关于 React Native 之 Touchable 系列组件的讲解

    在Android设备上,这个组件利用原生状态来渲染触摸的反馈。目前它只支持一个单独的View实例作为子节点。...在底层实现上,实际会创建一个新的RCTView结点替换当前的子View,并附带一些额外的属性。而且原生触摸操作反馈的背景可以使用background属性来自定义。...属性 同理,TouchableNativeFeedback继承于TouchableWithoutFeedback,所以TouchableWithoutFeedback得属性,我们都可以使用,这里就不重复介绍了...background 决定在触摸反馈的时候显示什么类型的背景。它接受一个有着type属性和一些基于type属性的额外数据的对象。...TouchableNativeFeedback.Ripple(color, borderless) - 会创建一个对象,当按钮被按下时产生一个涟漪状的背景,你可以通过color参数来指定颜色,如果参数borderless

    1.6K90

    细数这些年被困扰过的 TS 问题

    好的,下面我们来开始介绍第一个问题 —— 如何在 window 对象上显式设置属性。...' does not exist on type 'Window & typeof globalThis'.(2339) 以上异常信息是说在 Window & typeof globalThis 交叉类型上不存在...很明显 Combinable 和 number 类型的对象上并不存在 split 属性。问题又来了,那如何解决呢?这时我们就可以利用 TypeScript 提供的函数重载。...Object 类型:它是所有 Object 类的实例的类型,它由以下两个接口来定义: Object 接口定义了 Object.prototype 原型对象上的属性; // node_modules/typescript...// Error: Property 'prop' does not exist on type '{}'. obj.prop = "semlinker"; 但是,你仍然可以使用在 Object 类型上定义的所有属性和方法

    15.3K73

    TypeScript

    #类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型。 #什么是断言 有些情况下 TS 并不能正确或者准确得推断类型,这个时候可能产生不必要的警告或者报错。...any 但有的时候,我们非常确定这段代码不会出错,比如下面这个例子: window.foo = 'foo'; // index.ts:1:8 - error TS2339: Property 'foo...当我们向 window 添加一个 foo 时,会报错示我们 window 上不存在 foo 属性。...当然,现在的编译器足够聪明,调用的时候可以不传递类型,编译器可以自己识别的 传递类型时,这个类型在函数中使用时的方法/属性,必须是存在的,或者继承自某个接口。...这里我有意使用不同的变量名,以表明类型值沿链向上传播,且与变量名无关。 #泛型约束 确保属性存在 当我们在函数中获取length属性,在类型为number时,是没有length的,所以会报错。

    1.8K10
    领券