学习Typescript(一)
现在TypeScript被越来越多的人推荐,处于好奇我也准备学习学习。以下是学习笔记,不是啥厉害的文章。
TypeScript的特点就是赋予了javaScript类型吧,看到有人调侃称TypeScript为AnyScript,讽刺大量使用any类型的现象吧。
通过React+TypeScript以及Angular(官方使用TypeScript开发)发觉了一些TypeScript的优点:
- 可以极大程度的避免在程序运行时类型预判错误造成的问题。
- 定义好接口后,在vscode中会获得非常方便的提醒能力。
开始学习:
基础
Boolean
let isDone: boolean = false; |
Number
let decimal: number = 6; |
String
let color: string = "blur"; |
Array
使用<>声明方式的情况在file.tsx中由于jsx语法的判断可以改为使用 as 替代。
let list: number[] = [1, 2, 3]; |
Tuple
// Declare a tuple type |
Enum
enum Color {Red, Green, Blue} |
默认情况下从0开始,c应该等于1,也可以自定义设置它的值
// 设一个 |
Any
可以为所欲为了,就像回到了js。
Void
函数没有返回值,或
let unusable: void = undefined; |
Null and Undefind
// Not much else we can assign to these variables! |
默认Null and Undefind 是其他类型的子类,比如number也可以返回undefind。
可以使用 –strictNullChecks 标记,null and undefind 只匹配any
Never
Some examples of functions returning never
:
// Function returning never must have unreachable end point |
与 void
的差异
一旦有人告诉你,never
表示一个从来不会优雅的返回的函数时,你可能马上就会想到与此类似的 void
,然而实际上,void
表示没有任何类型,never
表示永远不存在的值的类型。
当一个函数没有返回值时,它返回了一个 void
类型,但是,当一个函数根本就没有返回值时(或者总是抛出错误),它返回了一个 never
,void
指可以被赋值的类型(在 strictNullChecking
为 false 时),但是 never
不能赋值给其他任何类型,除了 never
。
Object
就和js的Object没啥区别
Tips:
我使用vscode作为编辑器,有个插件叫做Code Runner能够直接在vscode中运行代码片段,非常方便。不过对于typescript还需要安装ts-node,使用npm安装一哈就好了。