原始数据类型
number
1 | let num: number = 1 |
以上写法都正确,且编译为js后8进制, 2进制将会转化为10进制
boolean
1 | let bol: boolean = true |
注意,使用构造函数 Boolean 创造不是布尔值而是对象,ts中不能这么用
string
1 | let str: string = 'hello' |
模板字符串会被转为字符串拼接
null & undefined
1 | let nul: null = null |
在ts的官方文档中,undefined,null是任何类型的子类型,是可以被赋值给其他任何类型,但需要设置!
在 tsconfig.json
中找到并设置为:
1 | "strictNullChecks": false |
这时候警告就消失了,但是以上的方法尽量不要操作,必须要赋值,我们可以用联合类型(原因我也不晓得,别人说的)
void
1 | function alertName(): void { |
JavaScript 没有空值void的概念,在 TypeScript 中主要用于表示函数无返回值,且undefined与null同上条所说:
undefined,null是任何类型的子类型,是可以被赋值给其他任何类型
也就是说undefined和null也可以赋值给void,但是undefined
可直接赋值给void
,而null
需要以下的情况下才可
1 | "strictNullChecks": false |
任意值
Any
任意值(Any)用来表示允许赋值为任意类型。
如果是一个普通类型,在赋值过程中改变类型是不被允许的:
1 | let str: string = 'seven' |
但如果是 any
类型,则允许被赋值为任意类型
1 | let anyType: any = 'seven'; |
vdfb
在任意值上访问任何属性,调用任何方法 都是允许的:
1 | let anyThing: any = 'hello' |
可以认为,声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
如果变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:
1 | let something; |