欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TypeScript学习(二)——数据类型一

程序员文章站 2022-07-12 16:31:23
...

JavaScript类型:原始数据类型和对象数据类型
原始数据类型:布尔值、数值、字符串、null、undefined、Symbol(ES6中的新类型)。

布尔值

使用boolean定义布尔值类型:

let bol: boolean = false;

在TypeScript中,boolean是JS中的基本类型,而Boolean是JS中的构造函数。

数值

使用number定义数值类型:

let aNumber: number = 6;

字符串

使用String定义字符串类型:

let aString:string = 'aa';
let sentence: string = `Hello,this is ${aString}`; //模板字符串

注: ` 用来定义模板字符串,${expr}用来在模板字符串中嵌入表达式。

空值

JS中没有空值(void)的概念,在TypeScript中表示没有任何返回值的函数:

function alertName(): void {
    alert('What is your name?');
}

Null 和Undefined

在 TypeScript 中,可以使用 null 和 undefined 来定义这两个原始数据类型:

let u: undefined = undefined;
let n: null = null;

undefined类型的变量只能被赋值为undefined,null类型的变量只能被赋值为null。
undefined和null是所有类型的子类型。undefined类型的变量,可以赋值给number类型的变量。

let num: number = undefined;

任意值

Any用来表示允许赋值为任意类型。
普通的类型在赋值过程中不允许改变类型,any类型允许被赋值为任意类型:

let a: any = 'good';
a = 7;

在任意值上允许访问任何属性以及调用任何方法。
声明一个变量为任意值后,对它的任何操作,返回的内容的类型都是任意值。

类型推论

如果没有明确的指定类型,TypeScript会依照类型推论的规则推断出一个类型。

let a = 'good'; //没有指定类型,默认为string
let b = 2; //没有指定类型,默认为number

联合类型

表示取值可以是多种类型中的一种。

let a: string | number; //表示a只能赋string和number类型的值
a = 'good';
a = 2;
function getLength(something: string | number): number {
    return something.length;//在不知道something的确切类型时,只能访问此联合类型的共有的属性和方法,但是.length方法只在string类型中有,而number中没有,报错。
}

联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型:

let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';//类型推断为string
console.log(myFavoriteNumber.length); // 5,正确
myFavoriteNumber = 7;
console.log(myFavoriteNumber.length); // 编译时报错
相关标签: typescript