typescript入门学习总结系列(一)基本数据类型

Typescript是JavaScript的超集,是微软开发的一种自由和开源的编程语言。它集合了JavaScript的所有内容并且包含了es6+的一些语法特性,尤其是引入了静态类型检查,可以减少出错,节省时间,提高开发效率。

我最近就学习了一段时间typescript,感觉比javascript好多了,js是在运行时才可以发现错误,而ts在编码过程中就能够发现错误并且及时改正,书写也很方便,现在就学习的知识做一个阶段性的总结,如果不足之处,还请各位大侠多多指正。

本篇目录

  • typescript资源
  • 安装typescript包
  • 基本数据类型

typescript资源

  • TS官网
  • Github

安装typescript包

首先,练习之前,一定要装好运行环境,这里安装一个全局typescript包就可以了。

npm i -g typescript

然后,一个简单的例子,输出一个欢迎语。

function sayHi (name:string):string {
  return `Hi,${name}!`;
}
sayHi('Jake'); // Hi,Jake!

[外链图片转存失败(img-97Z9RF89-1566273540075)(./sayhi.gif)]

最后,运行一下。

tsc --watch say.ts

watch是监听编码状态,可以实时编译,很方便的。

使用node运行一下就可以看到输出结果了。

node say.js

如果传参不是字符串类型就会报错,在编码的过程中就避免了错误。

基本数据类型

这个小节主要简单回顾一下typescript中的这个类型和变量。ts中的基本数据类型有string,number,boolean,tuple,enum,any,void,null,undefined,Array,Object等。

声明一个变量的时候,主要是在声明的变量后面加一个冒号,然后指定数据类型,接着写值;如果没有指定数据类型,就按赋给变量的第一个值的类型为准,这里新增的数据类型除了js的六大数据类型外,还有enum(枚举)和tuple(元组)以及any(任何类型)。

string

let name : string = 'Jake';
let str : string = `hi, ${name}!`;
console.log(str); // hi, Jake!

number

let numA : number = 0b1010; // 二进制
let numB : number = 0o744; // 八进制
let numC : number = 10; // 十进制
let numD : number = 0xf00d; // 十六进制
console.log(numA, numB, numC, numD); // 10 484 10 61453

boolean

let flag : boolean = true;

Array

let numbers : number[] = [1,2,3];
// 或使用泛型
let numbers : Array = [1,2,3];

tuple

元组就是用来表示已知数组的元素类型和数量,各个元素类型可以不同,但是对应位置类型必须相同。

let a : [string, number, boolean];
a = ['hi', 10, true];

enum

枚举就为一组值赋予以友好的名字,定义数值集合。

默认从0开始编号,可以自定义。

enum Color { red = 1, green, blue };

let c : Color = Color.red;
console.log(c); // 1

let colorName : string = Color[3];
console.log(colorName); // blue

any

any表示任意类型,例如:

// 可以是任意类型
let anyVal : any = 1;
console.log(anyVal); // 1
anyVal = 'hi';
console.log(anyVal); // hi
anyVal = true;
console.log(anyVal); // true

void

void表示空值,与any相反,没有任何类型。

  • 用作声明变量

只能赋值undefined或者null,没有多大意义。

let un : void = undefined;
  • 用作函数返回值

这个是最常见的使用。

function infoTip (): void {
  console.log('this is a info!');
}
infoTip(); // this is a info!

null和undefined

这个默认是所有类型的子类型,你可以null或undefined赋值给number类型的变量。

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

Never

never表示永不存在的值的类型,用在抛出错误,是所有类型的子类型,没有类型是never的子类型,any也不能赋值给never。

变量可以是never类型,当他们被永不为真的类型保护时候。

function printErr (msg:string): never {
  throw new Error(msg);
}
printErr(`Argument of type '1' is not assignable to parameter of type 'string'.`);

object

object表示非原始类型,除了基本数据类型的类型。

用它可以表示一个对象,使用对象的方法和属性。

declare function create (obj : Object | null): void;
console.log(create({state: 0})); // ok

今天就总结到这里,下次见,bye!

你可能感兴趣的:(前端框架库)