前言
虽然作为一个前端菜鸟,但是对Vue还是算蛮熟悉的。在得知Vue 3.0全部用TypeScript进行重构后,开始了TypeScript的学习之旅…
基本数据类型
布尔值
let enable: boolean = false
数字
let num: number = 10
字符串
let str: string = 'hello world'
数组
1. 普通的声明方式
let list: number[] = [1, 2, 3]
2. 数组泛型的声明方式
let list: Array<number> = [1, 2, 3]
元组Tuple
允许表示一个已知元素数量和类型数组,各元素的类型可以不相同
例如:
let x: [string, number]
x = ['hello', 10]
x = [10, 'hello'] // error
枚举enum
用于为一组数值赋予友好的名字
enum Color {Red, Green, Blue}
let x: Color = Color.Green // 1 默认从1开始编号
enum Color {Red = 1, Green, Blue}
let x: Green = Color.Green // 2 此时从1开始编号
enum Color {Red = 1, Green = 2, Blue = 3} // 全部手动编号
any
当我们不清楚变量类型,但需要让这个变量通过编译,则可以声明为any类型
let notSure: any = 4
notSure = "maybe a string"
notSure = false
也可以用于声明不同类型的数组
let list: any[] = [1, 'hello world', true]
void
表示不是任何类型,常用于方法返回值
function warnUser(): void {
console.log("this is a void function")
}
对于void类型的变量只能赋值null或undefined
null和undefined
TS里,undefined和null各自的类型分别叫做undefined和null。默认情况下null和undefined是所有类型的子类型。
let a: number = undefined
never
表示永远不会存在的值,典型的就是报错信息。
function error(message: string): never {
throw new Error(message)
}
function fail() {
return error("Something failed")
}
Object
表示非原始类型,即除number、string、boolean、symbol、null或undefined之外的类型
declare function create(o: object | null): void
create({ prop: 0 })
create(null)
create(42)
create("string")
create(false)
create(false)
create(undefined)
类型断言
即不进行任何的数据类型的检查
1. 尖括号语法
let someValue: any = "this is a string"
let strLength: number = (<string>someValue).length
2. as语法
let someValue: any = "this is a string"
let strLength: number = (someV)