前言
作为大前端浪潮中激流勇进的小码农,持续性的去更新自己的技术栈,是极其重要与必要的。作为浪尖上的 typescript,新晋之星 vue 也迈开兼容推广 ts 的步伐,更是让人必须去 see 一 see 的了。记得在 vue 爬坑之路时,曾在 sf 遇到个前端大牛说过,老鸟都是从菜鸟过来的,学习的整理和积累是不断成长起来的利剑。这也是我在整理学习手札的原因之一。
正文
学习主要以文档为主,参考 ts 官方文档 https://www.tslang.cn/docs/ha…
1. 数据类型及变量声明
ts 变量声明定义语法 let[作用规则] param[变量名]:String[类型名] = value[值]
ts 相较原生 js,数据类型明显细化了很多,增加了数据类型校验,使编码更规范,个人感觉更像 java 了。ts 提供的类型主要包括:布尔值(boolean
)、字符串(String
)、数值(number
)、数组([]
|| Array<>
)、元组([dataType,number]
)、枚举(Enum
)、Any(any
)、Void(void
)、Null(null
)、Underfined(underfined
)、Never(never
)、Object(object
)
类型断言(<>
|| as
)类似 java 的类型转换,主要有两种写法,一种是 <>
语法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
另一种是 as
语法
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
确定赋值断言允许 !
放置在属性或变量申明之后,ts 在解析时,明确申明变量或属性是有值的,例如:let x!:number
,变量 x
后置 !
,未赋值直接引用x!
没毛病;而?则和!相对,ts 在解析时会提示可能为underfined
;
let
和 const
是 es6 引进的两个重要的关键字,引进之前,变量的申明主要是 var
。var
作用域可以是包含它的函数、模块、命名空间或全局域,可以在作用域的任意位置访问该申明。var
申明不在乎多少次,因此在很多逻辑比较复杂,层次比较深的代码中,很容易出现同一个变量重复申明重定义覆盖而不报错,这也是一个较为头疼的 BUG。
let
则是词法或块作用域,此作用域更贴切逻辑处理时的严谨;const
的作用域和 let
一样,只是 const
一般作只读申明,主要用于申明常量,引用的值不可改变。
2. 接口
官方定义,接口的作用是为那些对值所具有结构进行检查的类型命名和为你的代码或第三方代码定义契约。