-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
typescript
支持几乎与javascript
相同的基础数据类型:Number
、String
、Boolean
、Undefined
、Null
,在此基础上,typescript
还扩展了void
、any
等常见类型数据。
基础数据类型声明
// 声明一个number类型变量
let n:number = 2;
在typescript
,如果未按照类型注解给变量赋值,比如将字符串赋值给n,将会在编译阶段报错:
Type '"1"' is not assignable to type 'number'.
// 声明一个布尔类型的变量
let hasMore:boolean = true;
// 声明一个string类型变量
let nickname:string = "zhangsan";
// null和undefined
let un:undefined = undefined;
let nu:null = null;
// 默认情况下null和undefined是所有类型的子类型。 就是说你可以把null和undefined赋值给number类型的变量
let n:number = undefined;
然而,当你设置了--strictNullChecks
表示严格校验空值,undefined
和null
只能赋值给它们各自或者void
类型。因为未避免发生不可预知的错误,鼓励使用--strictNullChecks
扩展数据类型
任意值
有时候我们声明一个变量的时候不确定它是什么类型,它有可能是动态的内容,比如用户输入的值,这时我们希望编译器可以直接通过对它们的检查。
// 声明一个任意值类型变量
let notSure:any = "123";
notSure = 123;
notSure = true;
任意值类型在声明数组的时候也非常有用,比如数组的元素的值是任意类型:
let arr:any = [1, '1', true]
空值
通常,我们用空值void
声明一个没有返回值的函数,很少用它声明一个变量,因为意义不大,只能赋值undefined
和null
(严格校验空值的时候,只能赋值undefined
)
// 声明一个空值类型变量
let empty:void = undefined;
empty = null;
// 声明一个没有返回值的函数
function fn():void {
console.log("no return value");
}
// 等价于
function fn():void {
console.log("no return value");
return undefined;
}