TypeScript-起步——TypeScript类型(一)
1、类型
① JavaScript和TypeScript的数据类型
-
我们经常说TypeScript是JavaScript的一个超级:
② JavaScript类型
Ⅰ. number类型
-
数字类型是我们开发中经常使用的类型,TypeScript和JavaScript一样,不区分整数类型(int)和浮点型(double),统一为number类型。
let num: number = 123 num = 456 // 整数类型 num = 7.89 // 浮点类型
-
如果你学习过ES6应该知道,ES6新增了二进制和八进制的表示方法,而TypeScript也是支持二进制、八进制、十六进制的表示:
let num: number = 123 num = 100 // 十进制 num = 0b110 // 二进制 num = 0o555 // 八进制 num = 0xf2311 // 十六进制
Ⅱ. boolean类型
-
boolean类型只有两个取值:true和false,非常简单
let flag: boolean = false; flag = true // boolean 类型 flag = 20 > 30 // 表达式
Ⅲ. string类型
-
string类型是字符串类型,可以使用单引号或者双引号表示:
const username: string = 'liangshuang' const sex: string = 'male'
-
同时也支持ES6的模板字符串来拼接变量和字符串:
const username: string = 'liangshuang' const age: number = 21 const sex: string = 'male' const info: string = `my name is ${username}, age is ${age}, sex is ${sex}`
Ⅳ. Array类型
-
数组类型的定义也非常简单,有两种方式:
-
写法一:
const arr: 类型注解[]
(推荐!) -
写法二:
const arr: Array<类型注解>
(不推荐!因为这种写法在jsx语法中是有冲突的)const arr1: string[] = ['1', '2', '3'] const arr2: Array<string> = ['a', 'b', 'c'] arr1.push('4') arr2.push('d') console.log(arr1); console.log(arr2);
-
-
如果添加其他类型到数组中,那么会报错:
Ⅴ. Object类型
-
object对象类型可以用于描述一个对象:
const user = { username: 'liangshuang', age: 21, sex: 'male', } console.log(user.username); user.age = 40
-
不需要指定对象的类型,他自己就会推断出内部属性的类型:
注意: 也可以自己规定对象的类型,但是不推荐,
-
因为无法推断出内部属性的类型:
const user: object = { username: 'liangshuang', age: 21, sex: 'male', }
-
-
并且从对象中我们不能获取数据,也不能设置数据:
Ⅵ. Symbol类型
-
在ES5中,如果我们是不可以在对象中添加相同的属性名称的,比如下面的做法:
-
通常我们的做法是定义两个不同的属性名字:比如identity1和identity2。
-
但是我们也可以通过symbol来定义相同的名称,因为Symbol函数返回的是不同的值:
const title1: symbol = Symbol('title') const title2: symbol = Symbol('title') const info = { [title1]: '程序员', [title2]: '老师' }
Ⅶ. null和undefined类型
-
在 JavaScript 中,undefined 和 null 是两个基本数据类型。
-
在TypeScript中,它们各自的类型也是undefined和null,也就意味着它们既是实际的值,也是自己的类型:
const n: null = null const u: undefined = undefined
注意: 其他的类型也可以赋值为null,例如:
const s: string = null
,但是只有在非严格模式下才可以,默认node环境中是严格模式,后面会在tsconfig.json
文件中进行配置。
转载自:https://juejin.cn/post/7133844015006351368