1. 基础类型
## 基础类型
- **boolean**(布尔值):true/false
- **number**(数字)
- **string**(字符串)
- 数组类型
- **Array 、[]**(数组)
- **Tuple**(元组)`[type1, type2]`:元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
- **enum**(枚举)(定义标识符):`enum Color {Red = 1, Green = 4, Blue = 9};`
- **Any**
- 有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。 那么我们可以使用 `any`类型来标记这些变量。
- 在对现有代码进行改写的时候,`any`类型是十分有用的,它允许你在编译时可选择地包含或移除类型检查。 你可能认为 `Object`有相似的作用,就像它在其它语言中那样。 但是 `Object`类型的变量只是允许你给它赋任意值 - 但是却不能够在它上面调用任意的方法,即便它真的有这些方法:
- **Void**:方法没有返回任何类型。
- **Null 和 Undefined**
- **Never:**`never`类型表示的是那些永不存在的值的类型。
- **Object:**`object`表示非原始类型,也就是除`number`,`string`,`boolean`,`symbol`,`null`或`undefined`之外的类型。
## 类型断言
1️⃣ \<string>someValue
2️⃣ someValue as string
`let strLength: number = (<string>someValue).length;`
`let strLength: number = (someValue as string).length;`