赞
踩
整理一下所知道的 Vue3 + TS 的基础知识点【会不定时更新】。
若还没看过 Vue3文档 或 TS搭配Vue3使用 的官方文档的童鞋,还是记得看看 官方文档
编译时就知道变量类型的是静态类型,运行时才知道一个变量类型的叫做动态类型。 java 是静态类型, js 是动态类型。
不允许隐式转换的是强类型,允许隐式转换的是弱类型。 java 是强类型, js 是弱类型。
那ts到底是什么类型的语言,很明显, ts 是静态类型语言,因为它需要经过编译。但是 ts不是强类型,因为它可以允许隐式类型转换。
let isBool: boolean
let num: number = 10
isBool = !num // ok
ECMAScript 的超集 (stage 3)
编译期的类型检查
不引入额外开销(零依赖,不扩展 js 语法,不侵入运行时)
编译出通用的、易读的 js 代码
Typescript = Type + ECMAScript + Babel-Lite
增加了代码的可读性和可维护性
减少运行时错误,写出的代码更加安全,减少 BUG
享受到代码提示带来的快感
重构神器
<script set lang="ts">
// 代码片段....
</script>
声明了变量的类型,那么这个变量就有了静态类型的特性,ts中使用:
操作符来声明类型。
// boolean 类型 let bool: boolean = true console.log(bool) // number 类型 // 支持浮点数、十进制和十六进制字面量、ES5的二进制和八进制字面量 let decLiteral: number = 6 let hexLiteral: number = 0xf00d let binaryLiteral: number = 0b1010 let octalLiteral: number = 0o744 // string 类型 let str: string = 'hellow word' let strL: string = `---${ str}的字符串长度是${ str.length}`
在元素类型后面接上 [],表示由此类型元素组成的一个数组。
let numArr: number[] = [1, 2, 3]
let anyArr: any[] = [1, '2', true]
// Array<元素类型>
let arrNum: Array<number> = [1, 2, 3]
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
Ts 内置类型之 Tuple
let tupleArr1: [string, number]
tupleArr1 = ['', 0] // ok
tupleArr1 = [1, false] // error
let tupleArr2: [number, string, boolean] = [1, '2', false] // ok
TS中,枚举就是一组常量的集合,但是和集合不同,枚举可以通过变量的值来得到变量,它是一个双向的过程。
默认的,第一个变量的值是0,后面的值会在前一个值上 +1,以此类推。是支持正反映射的。
enum PositionTypes {
TOP,
RIGHT,
BOTTOM,
LEFT
}
// 用值,则会得到 属性名的字符串
const top1 = PositionTypes[0] // TOP
// 用指定属性,则会得到 值
const top2 = PositionTypes.TOP // 0
console.log(top1, top2)
想改变枚举的初始值,只需要给第一个变量赋值即可。
enum PositionTypesNum {
TOP = 2,
RIGHT,
BOTTOM,
LEFT
}
// 用值,则会得到 属性名的字符串
const topNum1 = PositionTypesNum[2] // TOP
// 用指定属性,则会得到 值
const topNum2 = PositionTypesNum.TOP // 2
console.log(topNum1, topNum2)
赋值重复的时候,调用会返回最后一个。
enum PositionTypesNum {
TOP = 2,
RIGHT = 2,
BOTTOM,
LEFT
}
const topNum1 = PositionTypesNum[2] // RIGHT
const topNum2 = PositionTypesNum.TOP // 2
console.log(topNum1, topNum2)
当枚举值不是数字的时候,下一个必须设置枚举值。
enum demoTypesAny3 {
a, // a=0
b = 3, // b=3
c, // c=4
e = 'q1', // e="q1"
f = 5 // f=5,此处不能直接写f
}
console.log(demoTypesAny3)
在一个字符串枚举里,每个成员都必须初始化值,否则会报错。
enum PositionTypesStr {
TOP = 'top',
RIGHT = 'right',
BOTTOM = 'bottom',
LEFT = 'left'
}
// 字符串枚举,就只能用属性名取值了
const topStr = PositionTypesStr.TOP // &#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。