香港响应式网站建设广西壮族自治区在线seo关键词排名优化
目录
- 语言类型
- 类型总览
- JavaScript 中的数据类型
- TypeScript 中的数据类型
- 定义类型
- 断言
- 索引签名
- 泛型
语言类型
JS -> 弱类型
TS -> 强类型
TypeScript(TS)是一种强类型语言。这意味着在TypeScript中,变量和函数参数的类型必须在编译时明确指定,这有助于在开发过程中发现潜在的错误,并提高代码的可维护性和稳定性。
与TypeScript相对比,JavaScript(JS)是一种弱类型语言。在JavaScript中,变量的类型可以在运行时动态确定,这意味着在编写代码时不需要显式声明变量的类型,这可能导致运行时错误和难以调试的问题。
- 强类型语言和弱类型语言的主要区别在于类型检查的时机和严格性:
- 强类型语言:在编译时进行严格的类型检查,要求开发者在编写代码时明确指定变量的类型。这有助于提前发现潜在的错误,提高代码的质量和可维护性。
- 弱类型语言:在运行时进行类型检查,允许在编写代码时不显式声明变量的类型。这可能导致运行时错误,调试难度较大。
类型总览
JavaScript 中的数据类型
① string
② number
③ boolean
④ null
⑤ undefined
⑥ bigint
⑦ symbol
⑧ object
备注:其中 object 包含: Array 、 Function 、 Date 、 Error 等......
TypeScript 中的数据类型
1. 上述所有 JavaScript 类型
2. 六个新类型:
① any
② unknown
③ never
④ void
⑤ tuple
⑥ enum
3. 两个⽤于⾃定义类型的⽅式:
① type
② interface
定义类型
let a: string //变量a只能存储字符串
let b: number //变量b只能存储数值
let c: boolean //变量c只能存储布尔值
断言
unknown 会强制开发者在使⽤之前进⾏类型检查,从⽽提供更强的类型安全性。
// 设置a的类型为unknown
let a: unknown
a = 'hello'
//第⼀种⽅式:加类型判断
if(typeof a === 'string'){x = aconsole.log(x)
}
//第⼆种⽅式:加断⾔
x = a as string
//第三种⽅式:加断⾔
x = <string>a
索引签名
索引签名: 允许定义对象可以具有任意数量的属性,这些属性的键和类型是可变的,
常⽤于:描述类型不确定的属性,(具有动态属性的对象)
// 限制person对象必须有name属性,可选age属性但值必须是数字,同时可以有任意数量、任意类型的其他属性
let person: {name: stringage?: number[key: string]: any // 【索引签名】,完全可以不⽤key这个单词,换成其他的也可以
}
// 赋值合法
person = {name:'张三',age:18,gender:'男'
}
泛型
代码中的
Array<string>
属于泛型,
let arr1: string[]
let arr2: Array<string>
arr1 = ['a','b','c']
arr2 = ['hello','world']