一、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:常量声明。