TypeScript 的编译和基本类型
- 如何创建编译bianyiTypeScript文件
- TypeScript的对象类型
- TypeScript中的参数操作
- TypeScriot中的字符串
- 总结
如何创建编译bianyiTypeScript文件
全局安装完TypeScript(下文统称TS)后新建名为hello.ts的文件,在里面输入TS代码。
export class hello {
showHello(name:any):void {
console.log(name)
}
}
新建TS文件成功,但是浏览器不支持解析TS文件,我们需要将其解析成JS文件。打开命令行控制台,进入hello.ts所在的文件夹。输入tsc hello.ts开始解析TS文件。解析后会在hello.ts文件的同级目录新建一个hello.js文件。
hello.js文件内容:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hellow = void 0;
var hellow = /** @class */ (function () {
function hellow() {
}
hellow.prototype.showHello = function (name) {
console.log(name);
};
return hellow;
}());
exports.hellow = hellow;
这里再介绍一个自动解析TS文件的方法,创建TS文件后打开命令行控制台输入tsc init。
会生成一个scconfig.json的配置文件,这里简单介绍一下基本的几个设置。
"target": "es5", //编译的JS文件是什么版本的语法
"outDir": "./js", //开启这个属性来设置解析的JS文件路径
设置完后运行项目就会自动解析TS文件。
TypeScript的对象类型
TS中支持给变量和函数定义类型
var name:string = 'linzijian';//字符串类型
var age:number = 18;//数字类型
var gril:boolean = false;//布尔值类型
var city:any;//任何类型
在变量名后用冒号+类型给一个变量定义类型,如果值的类型与定义的类型不同,就会有语法提示错误信息。对于代码的编写和维护有了很大的提升。提高了代码的可读性。此外需要注意,如果值与类型不同,代码还是可以解析,并不会导致报错,只是会有提示。
function getAge(age:number):void{
console.log(age)
}//void类型的函数并不需要返回值
function getName(name:string):string{
return name;
}//设置函数返回值类型
函数类型设置void可以没有返回值,或者设置返回值的类型。
TypeScript中的参数操作
- 参数默认值
: 参数默认值顾名思义是在参数不指定值的时候拥有一个默认值。
class hello {
showHello(name:string = 'linzijian'):void {
console.log('hello '+name)
}
}
var sjq = new hello();
sjq.showHello();//打印 hello linzijian
sjq.showHello(shijiaqi);//打印 hello shijiaqi
}
这里需要注意有默认值的参数必须在最后声明。
- 可选参数
: 在传参的时候可选择是否传入该参数
class hello {
showHello(name:string,age:number,gril?:boolean):void {
console.log('hello '+name + 'age:' + age + 'gril:' + gril)
}
}
var sjq = new hello();
sjq.showHello('shijiaqi',18);//打印 hello shijiaqi age:18 gril:undefined
此时不会报错,如果获取gril参数并不会报错,而是显示 undefined,同样可选参数也和默认值参数一样需要在正常参数后声明。
TypeScriot中的字符串
TS中的字符串支持ES6中的模板字符串功能,用两个反引号
来描述模板字符串:
var background: string = 'red';
var width: number = 300;
var height:number = 300;
var html = `<div style = 'width:${width}px;height:${height}px;background:${background};'></div>`;
document.body.innerHTML = html;
上面这行代码会在网页上渲染一个长宽300px的红色正方型,模板字符串内使用变量不在需要繁琐的+
号连接,采用了${}
来声明变量。
TS中的模板字符串还可以拆分字符串:
class hello {
showHello(str1:any,str2:any,str3:any):void {
console.log(str1)//打印 0: "我有" 1: "块钱,你有" 2: "块钱,我们有" 3: "块"
console.log(str2)//打印 10
console.log(str3)//打印 20
}
}
var num1: number = 10;
var num2:number = 20;
var num3:number = 30;
var sjq = new hello();
sjq.showHello`我有${num1}块钱,你有${num2}块钱,我们有${num3}块`
如果要拆分字符串,方法就不能带小括号,直接在方法名后跟上模板字符串,拆分的规则是除变量外的所有字符串以变量拆分为一个数组,传入第一个参数str1,变量按顺序传入之后的参数。如果变量多余参数数量,就会出现TS的警示报错。
总结
目前我感觉TypeScript对于代码的规范和后期的维护起到了很大的作用,特别适合多人协作,增加了代码的可读性和美观性。以上为个人观点,如果有误还望指正~~