typescript
[TOC]

typescript优点?

  • 强类型
    • 【可选的】不要求100%覆盖
      • 更方便迁移老代码
      • 降低入门门槛
    • 【js的超集】支持js(包含es6,及es6+)所有语法
      • 方便快速入手
    • 【静态检查】编译时就报错,而不像js在运行时报错
      • 静态检查就知道错误,效率更高
      • 避免低级错误
    • 【支持模块】方便类型的导入导出,复用组合
    • 【更好维护】类型就是最好的注释,减少查文档的时间
  • 支持面向对象编程,类型重用率更高,代码可读性更强,相比react的propTypes功能更强大
    • 接口 interface
    • 继承: extend
    • 类: class
    • 泛型
Could not load image
img

typescript缺点?

  • 【编译耗时】需要长时间的来编译代码:deno内部将删除ts代码
  • 【第三方定义文件】在使用第三方库时,需要有三方库的定义文件,并不是所有三方库都提供了定义文件,提供的定义文件是否准确也值得商榷

typescirpt有哪些基础类型?

js的类型
  • number
  • string
  • boolean
  • object
  • array
  • function
  • null
  • undefined
  • symbol
ts新增类型
  • any: 任意值类型
  • void:函数没有返回值时用void
  • Tuple(元组):规定数组成员的数量,各位置的类型
  • enum(枚举):定义数值集合
  • never:(实际上不常用) never是其他类型的子类型,代表不会把出现的值

介绍下ts中的泛型?

泛型代表的是泛指某一类型,更像是一个类型变量。由尖括号包裹。
主要作用是创建逻辑可复用的组件。
泛型可以作用在函数、类、接口上。
1
函数:
2
3
function greet<T>(name: T) {}
4
5
类:
6
7
class createObj<T> {
8
9
​ name: T
10
11
}
12
13
接口:
14
15
interface IF<T> {
16
17
​ name: T
18
19
}
20
21
泛型还可以被约束,这样就是任意类型了。
22
23
interface TIF {
24
25
​ length: number
26
27
}
28
29
function test<T extends TIF>(params: T) {
30
31
​ console.log("=========>>>", params.length);
32
33
}
34
35
泛型约束之类型参数
36
37
function getPropoty<T, K extends keyof T>(obj: T, key: K) {
38
39
return obj[key];
40
41
}
Copied!

强烈推荐

像更系统的学习typescript,可查看 typeScript-demo
参考资料: