typescript数据类型篇

javascript中分为原始数据和对象类型两种。
原始数据类型包括:布尔值、数值、字符串、nullundefined 以及 ES6 中的新类型 Symbol
typescript中和JavaScript的数据类型大致相同,只是做了一些扩展,下面是具体的用法

布尔值(boolean)

boolean是最基本的数据类型,在typescript中是boolean来定义

let flag: boolean =  false;  //冒号后跟的是数据类型

数值(number)

和js中一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是 number。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。下面是官方文档中给出的例子:

let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
// ES6 中的二进制表示法
let binaryLiteral: number = 0b1010;
// ES6 中的八进制表示法
let octalLiteral: number = 0o744;
let notANumber: number = NaN;
let infinityNumber: number = Infinity;

字符串(string)

和js中一样,双引号和单引号都可以使用,同样支持es6中的字符串模版(``),${变量名}这种方式

let str: string = 'hello'; 
let str: string = `hello`;
let name: string = "typescript";
let sayHello: string = `你好吖,${name}`;

空值(void)

typescript允许设置空的类型,比如一个无返回值的函数,(感觉和java定义函数的方式一样)

function sayHello() :void {
  console.log('hello typescrip')
}

声明一个空的变量没什么实际作用,所以可以使用undefined或者null

let unusable: void = undefined;

null和undefined

undefined 类型的变量只能被赋值为 undefined,null 类型的变量只能被赋值为 null。
let u: undefined = undefined;
let n: null = null;

undefined 类型的变量只能被赋值为 undefined,null 类型的变量只能被赋值为 null。
与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量:

//下边这两种都不会报错
let num: number = undefined;  
let list: number[] = null;
// 这样也不会报错
let u: undefined;
let num: number = u;

但是void的变量不能赋值给number类型的变量

let u: void;
let num: number = u;
base.ts:16:5 - error TS2322: Type 'void' is not assignable to type 'number'. //不能将类型为void的变量赋值给number
16 let num: number = u;

任意值(any)

任意值(Any)用来表示允许赋值为任意类型。
如果是一个普通类型在赋值过程中是不允许改变类型的

let getting: string = 'welcome'
getting = 999;    //在typescript中是不允许这样改变类型的
fn.ts:9:1 - error TS2322: Type '99' is not assignable to type 'string'.
9 getting = 99;

但是如果在定义变量时把类型改为any, typescript是允许更改类型的

let getting: any= 'welcome'
getting = 999;    //ok
//甚至于你可以调用方法,都不会报错
getting.sayName('hello')
tip: 如果定义变量未声明类型,那么该变量将默认为any类型
let number;
//相当于 let number: any;

下一遍学习typescript的对象类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。