Skip to content

typescript手册-数据类型 #15

@Pasoul

Description

@Pasoul

typescript支持几乎与javascript相同的基础数据类型:NumberStringBooleanUndefinedNull,在此基础上,typescript还扩展了voidany等常见类型数据。

基础数据类型声明

// 声明一个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表示严格校验空值,undefinednull只能赋值给它们各自或者void类型。因为未避免发生不可预知的错误,鼓励使用--strictNullChecks

扩展数据类型

任意值

有时候我们声明一个变量的时候不确定它是什么类型,它有可能是动态的内容,比如用户输入的值,这时我们希望编译器可以直接通过对它们的检查。

// 声明一个任意值类型变量
let notSure:any = "123";
notSure = 123;
notSure = true;

任意值类型在声明数组的时候也非常有用,比如数组的元素的值是任意类型:

let arr:any = [1, '1', true]

空值

通常,我们用空值void声明一个没有返回值的函数,很少用它声明一个变量,因为意义不大,只能赋值undefinednull(严格校验空值的时候,只能赋值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;
}

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions