typeScript中八个 javaScript 的类型

typeScript中八个 javaScript 的类型

1.布尔类型

let bool: boolean = false
bool = true
// bool = 'hello' // 不能将类型“"hello"”分配给类型“boolean”。
// bool = 123 // 不能将类型“123”分配给类型“boolean”。

// 赋给 bool 的值也可以是一个计算之后结果是布尔值的表达式,比如:

let b = !!0
console.log(b) // false

2.数值类型

let num: number = 0
num = 123
num = 0b1111011 // 二进制的 123
num = 0o173 // 八进制的 123
num = 0x7b // 十六进制的 123

// num = '100' // 不能将类型“"100"”分配给类型“number”。
// num = false // 不能将类型“false”分配给类型“number”。

3.字符串

字符串类型中你可以使用单引号和双引号包裹内容,但是可能你使用的 tslint 规则会对引号进行检测,使用单引号还是双引号可以在 tslint 规则里配置。你还可以使用 ES6 语法——模板字符串,拼接变量和字符串更为方便。

let str: string = 'hello'
let st: string = `${str}`

// str = 100 // 不能将类型“100”分配给类型“string”。
// str = false // 不能将类型“false”分配给类型“string”。

let s: 'STRING'
// 另外还有个和字符串相关的类型:
// 即把一个字符串字面量作为一种类型,比如上面的字符串"STRING",当你把一个变量指定为这个字符串类型的时候,就不能再赋值为其他字符串值了,如:
// s = 'a' // 不能将类型“"a"”分配给类型“"STRING"”。

4.数组

// 在 TypeScript 中有两种定义数组的方式:
let list1: number[] = [1, 2, 3]
let list2: Array<number> = [1, 2, 3]

// let list3: ReadonlyArray<number> = [1, 2, 3] // 即只读数组。

list3 = []

// console.log(list3)

第一种形式通过number[]的形式来指定这个类型元素均为 number 类型的数组类型,
这种写法是推荐的写法,
也可以使用第二种写法。
注意,这两种写法中的number指定的是数组元素的类型,你也可以在这里将数组的元素指定为任意类型。
如果你要指定一个数组里的元素既可以是数值也可以是字符串,那么你可以使用这种方式:number|string[]
这种方式我们在后面学习联合类型的时候会讲到。

当你使用第二种形式定义时,tslint 可能会警告让你使用第一种形式定义,如果你就是想用第二种形式,可以通过在 tslint.json 的 rules 中加入"array-type": [false] 关闭 tslint 对这条的检测。

5.null

let u: undefined = undefined
// 这里可能会报一个 tslint 的错误:Unnecessary initialization to 'undefined',就是不能给一个值赋 undefined,但我们知道这是可以的,所以如果你的代码规范想让这种代码合理化,可以配置 tslint,将"no-unnecessary-initializer"设为 false 即可

6.undefined

let n: null = null

7.object

let obj: object

obj = { name: 'object' }

// console.log(obj.name) // 类型“object”上不存在属性“name”

8.symbol

let sym: symbol = Symbol('你好')

console.log(sym)

猜你喜欢

转载自blog.csdn.net/qq_39953537/article/details/102685392