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

TypeScript开发实战

共47讲 · 约450分钟
2990
免费
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 | 结束语
本节摘要
 写留言

精选留言(14)

  • 2019-07-18
    建议在后续课程中介绍像类型这样的内容时,说一下应用场景,比如元组。
    7
  • 2019-07-18
    对于元祖,如果push后的元素不能访问,是不是可以理解为元祖类型的数组的长度是不可以改变的?

    作者回复: 原则上不可以改变,允许 push 应该是一个TypeScript 的一个缺陷

    3
  • 2019-08-04
    定义Symbol类型时报错, 类型“SymbolConstructor”没有兼容的调用签名。请问这是怎么回事?

    作者回复: 应该是声明文件的问题,你的tsconfig.json中lib是如何配置的,最好贴出完整代码。

    2
    1
  • 2019-07-23
    老师,let obj:object 与 let obj:Object 和 let obj:{} 的区别

    作者回复: let obj: object // 表示非原始类型(非string/boolean/number/symbol/null/undefined)

    let obj: Object // TypeScript定义的标准JavaScript Object接口(按ctr可查看)

    let obj: {} // 表示一个空对象类型

    1
  • 2019-07-18
    老师:为什么
    let obj: object = { x: 1, y: 2 };
    obj['x'] = 2;
    就不报错了?而obj.x = 2;就报错呢?

    作者回复: 这种方式绕过了类型检查,算是一种hack,还是建议为object指定明确的属性和类型。

    1
  • 2019-12-14
    老师 symbol 复制报错 只能把tsconfig.json 的配置修改为 es2015 那如果是 es2016怎么声明
  • 2019-12-11
    老师,为什么我的 VSCode 没有语法高亮提示,而且 str = 123 的时候,也没有红色波浪线。
  • ```js
    type Fruit = "Orange" | "Apple" | "Banana";
    let myString = "Banana";
    let myFruit: Fruit = myString;
    ```

    myFruit会报错,这种情况怎么处理会好些呢?(网上搜到的感觉不优雅,真实情景是antd table column align属性 "left" | "center" | "right" | undefined)

    在线示例

    https://www.tslang.cn/play/index.html#src=type%20Fruit%20%3D%20"Orange"%20%7C%20"Apple"%20%7C%20"Banana"%3B%0D%0A%0D%0Alet%20myString%20%3D%20"Banana"%3B%0D%0A%0D%0Alet%20myFruit%3A%20Fruit%20%3D%20myString%3B
    展开

    作者回复: myFruit是一个字面量联合类型,只能被直接赋值为字面量,不能被赋值为一个字符串类型的变量,因为变量的值可能会发生改变。去掉中间变量myString即可。

  • 2019-11-09
    元组有什么用?
  • 2019-09-27
    要是对象的value也是个对象呢,要一直写下去吗
    const obj:{a:{}} = {a:{}}

    作者回复: 是的,但一般不这么写,可以定义一个接口,另外如果是对象字面量,直接赋值即可,不必指定类型。

  • 2019-08-31
    老师你好,你的mac分屏软件用的什么

    作者回复: Mac自带功能,按住关闭按钮

  • 2019-07-28
    typescript类型
    Es6
    Boolean,number,string,Array,Function,Object,Symbol,undefined
    自定义
    Void,nevel,any,元组,枚举,高级类型
    特别注意
    元组 特定个数类型的数组 ,注意数组越界的问题,可以添加多余数据,但不可以访问
    Undefined和null不可以被赋值其他类型
    Undefined和null是其他类型的子类型,可以赋值给其他类型,前提是修改ts.config配置文件中strictNullChecks为false
    Undefined 可以被赋值,所以用void 0替代
    never thow,死循环语句返回类型
    展开
  • 2019-07-20
    能不能讲下在webstorm里面怎么配置可以自动编译以及鼠标移入显示类型信息

    作者回复: Q1:
    https://blog.jetbrains.com/webstorm/2016/03/how-to-compile-typescript-in-webstorm/

    Q2:
    https://www.jetbrains.com/help/webstorm/typescript-support.html#typescript_parameter_inferred_type_information

    个人没有用过Webstorm,Google一下即可 :)

  • 2019-07-18
    老师,您在vscode中用的哪个ts的插件?

    作者回复: Prettier,TSLint