// ------ 字符串类型
//类型推断: 当定义一个变量但没有明确指定类型时,编译器会根据变量的初始值自动推断出其类型
//let url = "dengruicode.com" //编译器推断出 url 的类型为 string
let url: string = "dengruicode.com"
console.log("url:", url)
// ------ 数值类型 number
/*
let balance = -100 // 账户余额为-100元
let weight = 60.5 // 体重为60.5公斤
*/
let balance: number = -100
let weight: number = 60.5
console.log("balance:", balance, "weight:", weight)
// ------ 布尔类型 boolean
//let tv = true //电视 - true(开)
let tv: boolean = true
console.log("tv:", tv)
// ------ 对象 object
/*
let boy = {
name: "David",
age: 28,
weight: 70.5
}
*/
//定义了一个匿名类型 {name: string, age: number, weight: number}
let boy: {name: string, age: number, weight: number} = {
name: "David",
age: 28,
weight: 70.5
}
console.log("boy:", boy)
// ------ map
/*
//定义了一个包含标题和网址的map
let web = new Map([
["title", "邓瑞编程"],
["url", "dengruicode.com"]
])
console.log("web:", web)
注:
报错
找不到名称“Map”。是否需要更改目标库? 请尝试将 “lib” 编译器选项更改为“es2015”或更高版本
解决方法
配置 tsconfig.json (ESNext 最新版本)
{
"compilerOptions": {
"target": "ESNext",
}
}
*/
/*
泛型是编程语言中的一个特性, 允许在定义函数、接口、类等时不指定具体的类型,
而是在调用时由编译器根据传入的参数自动推断出类型
Map<K, V>是一个泛型接口,用于表示键值对的集合,其中 K 代表键的类型, V 代表值的类型,
通过使用泛型, Map 接口可以适用于不同类型的键和值
Map<string, string> 是泛型接口 Map<K, V> 的一个具体实例,
其中键和值都被指定为了 string 类型, 这意味着 Map 只能存储 string 类型的键和值
*/
let web: Map<string, string> = new Map([
["title", "邓瑞编程"],
["url", "dengruicode.com"]
])
console.log("web:", web)
/*
let girl = new Map([
["name", "Luna"],
["age", 20],
["weight", 50.5]
])
*/
// | 符号用于定义联合类型, 它表示一个值可以是几种类型中的一种
// string | number 表示该变量可以是字符串或者数值
let girl: Map<string, string | number> = new Map<string, string | number>([
["name", "Luna"],
["age", 20],
["weight", 50.5]
])
console.log("girl:", girl)
/*
//错误示例
let girl: Map<string, string | number> = new Map([
["name", "Luna"],
["age", 20],
["weight", 50.5]
])
错误原因
TypeScript 基于第一个键值对 ["name", "Luna"] 推断 Map 的类型为 Map<string, string>,
而定义的类型注解是 Map<string, string | number>,这两个类型不兼容,因此 TypeScript 报错
*/
//new Map<string, string | number | boolean> 已经明确指定了 Map 的类型,因此可省略变量 girl2 的类型注解
let girl2 = new Map<string, string | number | boolean>([
["name", "Amy"],
["age", 22],
["weight", 60],
["isGirl", true]
])
console.log("girl2:", girl2)
//any 是一种类型, 可以存储任意类型的值
let girl3 = new Map<string, any>([
["name", "Amy"],
["age", 22],
["weight", 60],
["isGirl", true]
])
console.log("girl3:", girl3)
// ------ set
//let number = new Set([1, 2, 3, 4, 5]) //定义了一个包含5个"不重复"的整数的集合
let number: Set<number> = new Set([1, 2, 3, 4, 5])
console.log("number:", number)
3.基础数据类型(上)
-- 未经授权禁止转载 --
- 状态: 更新中
- 作者: 邓瑞
- 课时数量: 37 节课
更新中 ...