天天看点

前端框架(react+umi+dva+ant design pro )攻克: 一、typescript基础(一)

一、typescript为什么出现

  主要解决JavaScript的痛点,主要痛点:

1、弱类型

2.  没有命名空间,导致很难模块化,不适合开发大型程序。

二、typescript能干什么?

1.编译时强类型检查,否则给出编择错误,同时能智能提示。

2.模块化,定义的函数必须是export关键字,才能被外部访问,这样实现了module的嵌套,访问是通过模块.函数名来外部访问。

3.typescript据于javascript的语法,做成了javascript的超集,即任何javascript语法在typescript中均是合法的。

4.typescript的语法可以实现类、接口、枚举、泛型、方法重载等,简洁的语法丰富了javascript的使用。

三、typescript的扩展名.ts和tsx区别:

    普通的.js文件重新命名为.ts,若使用了JSX,则重新命名为.tsx,所以react组件必须命名扩展名为.tsx。

四、typescript转换成js有严格性的设置

     缺省不管你的typescript中的语法有没有问题,均会转化为js文件,若设为

noEmitOnError

选项则出错不让编译为js。还有如果你不想让没有明确指定类型推为any类型,则启用noImplicitAny。

五、模块中的函数引入改成typescript用法:

   定义:

export function feedPets(pets) { // ... }

  引入:    

 import  foo = require("foo");

     foo.doStuff();

六、TypeScript内容手册讲解:

(一)基础类型:数字,字符串,结构体,布尔值等。

    布尔值:let isDone: boolean = false

     数字:均是浮点型,支持十进制、十六进制、二进制、八进制。

     let decLiteral: number = 6;

     let hexLiteral: number = 0xf00d;

     let binaryLiteral: number = 0b1010;

     let octalLiteral: number = 0o744;

    字符串:let name: string = "bob";

   数组:let list: number[] = [1, 2, 3];  或者let list: Array<number> = [1, 2, 3];

   元组:let x: [string, number];

   枚举:

  enum Color {Red, Green, Blue}

  let c: Color = Color.Green;

(二)变量声明用let 代替原来的var:

   let: 块内有效

   const:常量声明。

继续阅读