在介绍Typescript之前,我想先说一下JavaScript,我们都知道,JavaScript 是一门非常灵活的编程语言,它没有类型约束,一个变量可能初始化时是字符串,过一会儿又被赋值为数字。因为隐式类型转换的存在,有的变量的类型很难在运行前就确定。JavaScript是基于原型的面向对象编程,使得原型上的属性或方法可以在运行时被修改。函数可以赋值给变量,也可以当作参数或返回值。
什么是ts?为什么要使用ts?
- ts是JavaScript的超集。
- TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript。
- TypeScript可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。
最近开始使用TypeScript,今天打算写一期用ts开发的解析。(后边还会更其他的,这里就介绍一下ts的引入及基本创建)
要想用ts,首先要获取ts,有两种常用的方式获取ts:
- 通过npm(Node.js包管理器)
- 安装Visual Studio的TypeScript插件
因为我是用npm来进行安装的,所以这里讲一下用npm引入的方法
> npm install -g typescript
然后我们就开始编写第一个ts文件:
function name(e) {
return "Hi, " + e;
}
let name = "LiMing";
document.body.innerHTML = greeter(name);
// Hi, LiMing
首先我们创建home.ts
这个文件,我们需要将上边的代码写入这个文件。
虽然我们使用了.ts
扩展名,但是这段代码仅仅是JavaScript而已。 我们需要通过编译使它转化成ts代码
tsc home.ts
输出结果为一个home.js
文件,它包含和输入文件中相同的JavsScript代码。 之后,我们就可以运行这个使用TypeScript写的JavaScript应用
ts好的一点在于它规定了变量的类型,所以我们要给上边方法里的参数e
设定类型。
function name(e: string) {
return "Hi, " + e;
}
let name = "LiMing";
document.body.innerHTML = greeter(name);
// Hi, LiMing
但是到这里编译的话,会产生一个错误
home.ts(7,26): error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string'.
像这种,尝试删除home
调用的所有参数。 ts会告诉你使用了非期望个数的参数调用了这个函数。 在这两种情况中,TypeScript提供了静态的代码分析,它可以分析代码结构和提供的类型注解。
要注意的是尽管有错误,home.js
文件还是被创建了。 就算你的代码里有错误,你仍然可以使用ts。但在这种情况下,ts会警告你代码可能不会按预期执行。