下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 15 | 类型检查机制(1):类型推断
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

TypeScript开发实战

共47讲 · 约450分钟
2974
免费
01 | 重塑“类型思维”
免费
02 | 类型基础(1):强类型与...
免费
03 | 类型基础(2):动态类型...
免费
04 | 编写你的第一个TypeScrip...
免费
05 | 基本类型
06 | 枚举类型
07 | 接口(1):对象类型接口
08 | 接口(2):函数类型接口
09 | 函数相关知识点梳理
10 | 类(1):继承和成员修饰...
11 | 类(2):抽象类与多态
12 | 类与接口的关系
13 | 泛型(1):泛型函数与泛...
14 | 泛型(2):泛型类与泛型...
15 | 类型检查机制(1):类型...
16 | 类型检查机制(2):类型...
17 | 类型检查机制(3):类型...
18 | 高级类型(1):交叉类型...
19 | 高级类型(2):索引类型
20 | 高级类型(3):映射类型
21 | 高级类型(4):条件类型
22 | ES6与CommonJS的模块系统
23 | 使用命名空间
24 | 理解声明合并
25 | 如何编写声明文件
26 | 配置tsconfig.json(1)...
27 | 配置tsconfig.json(2)...
28 | 配置tsconfig.json(3)...
29 | 编译工具:从ts-loader到...
30 | 代码检查工具:从TSLint到...
31 | 使用Jest进行单元测试
32 | 创建项目
33 | 组件与类型(1):函数组...
34 | 组件与类型(2):高阶组...
35 | 事件处理与数据请求
36 | 列表渲染与路由
37 | Redux与类型
38 | 搭建服务端开发环境
39 | 列表的CRUD
40 | 导出Excel
41 | 搭建Vue开发环境
42 | 组件封装
43 | 组件发布
44 | 共存策略
45 | 宽松策略
46 | 严格策略
47 | 结束语
本节摘要

精选留言(4)

  • 2019-09-16
    老师,我在最新版本的vscode中,输入window.onkeydown = (event) => { console.log('onkeydown')},编辑器会提示参数“event”隐式具有“any”类型,而没有进行上下文推断。 但是在之前的一些版本里就可以正常推断,请问这个是哪里的问题呢?

    作者回复: 嗯,这个提示是之前没有的,加上 KeyboardEvent 类型就可以了。

    3
  • 2019-08-31

    /**
     * 类型推断
     * 从右向左
     */

    let a = 1
    let b = [1]

    let c = (x = 1) => x + 1

    /**
     * 类型推断
     * 从左向右 (根据上下文)
     */

    window.onkeydown = (event) => {}

    /**
     * 类型断言
     */

    interface Foo {
        bar: number
    }
    let foo = {} as Foo
    foo.bar = 1

    /**
     * 以上使用`as`的方式,不会提示是否缺失定义`bar`属性,
     * 最好的方式是使用下面代码,在定义时就指明类型
     *
     * Property 'bar' is missing in type '{}' but required in type 'Foo'.
     */

    let foo02 : Foo = {
        bar: 1
    }
    展开
    1
  • 2019-08-03
    let foo = {} as Foo
     let foo = <Foo>{}
     let foo: Foo = {
        bar: 1
     }

    请问老师 这三种使用方式 第二种方式和其他两种有什么区别呢?
    展开

    作者回复: 第二种和第一种一样,但是不能用在 React 中,建议使用第三种。

  • 2019-07-27
    类型推断
    不需要指定变量的类型(函数的返回值类型),Typescript 可以根据某些规则自动为其推断一个类型。

    1.基础类型推断
    2.最佳通用类型推断
    3.上下文类型推断

    - 前两者都是从右往左的推断,根据值去推断, 例如 let a = 1 // a 被推断的类型是 number
    - 最佳通用类型推断 例如 let b = [1, 'a'] // b 的最佳通用类型 (string | number)[]
    - 根据上下类型推断 例如 window.onkeydown = (event) => {} // 推断 event 为 KeyboardEvent

    - 当类型推断不符合你的要求的时候,你可以使用类型断言 as,但是类型断言不能乱用,要对自己上下文充分了解
    展开