typescript的语法和使用
2019-07-08 10:41
579 查看
typescript是javascript的一个超集,使用typescript编写的,最后还是会转化为javascript去执行。
基本数据类型
- 数字型:number
- 字符型:string
字符可以使用单引号或者双引号,多行字符可以使用``,这个也可以够成格式化字符串。 - 布尔型:boolean
- 任意类型:any
任意类型也是意味着这个变量的类型是不定的。和python语言有同样的意思。
let a:any = 5 //这是数字类型 a = '5' //重新赋值为字符串型。 let b:any[] b = [1,'2'] /b这个数组就可以存任何类型的了
- 数组类型
let arr:number[] = [1,2,3] //都是数字的数字 let arr1:string[] = ['1','2'] //都是字符的数组 let arr2:Array<number> = [1,2] //泛型数组 <>里面是类型
- 元组类型
let x:[string:number] x = ['1',1]
元组内类型不需要一致,但是对应的一定要一致。
- 枚举
enum Color {Red, Green, Blue}; let c: Color = Color.Blue; console.log(c); // 输出 2
自我理解,枚举就是定义一个新的数据类型,然后去使用它。
- void
function hello(): void { alert("Hello Runoob"); } //表示这个函数无返回值
- null undefined never null 表示对象值缺失
- undefined 表示一个为定义的值
- never 表示从不会出现的值
变量的声明
字母数字下划线和$符号别的都不行
var 变量名字:类型 = 值 var a = 5 // 因为a没有给定类型,所以a可以为任何类型
类型断言
就是指可以把一个类型转为另一个类型类似于类型转化
var a = 1 var b:string = <string>a //将a变为字符串类型 var b:string = a as string //另外一种写法
运算符
三元运算
var a = 1>2 ? 1:2 // 如果1大于2,就取1,否则取2
判断类型
var a = 5 console.log(typeof a)
条件和循环
条件和循环和js一样,但是for 循环多了一个不一样的
var num = 5; var j; var n = "a b c"; for (j in n) { console.log(n[j]); } //可以看出这个和python中的for差不多。
还有一种es6中的for:
var num = 5; var j; var n = "a b c"; for (j of n) { console.log(n[j]); } //实际就是in换为of
foreach循环
let list = [4, 5, 6]; list.forEach((val, idx, array) => { // val: 当前值 // idx:当前index // array: Array });
函数
和js中函数不一样的是,参数和函数返回值都可以定义类型
function add(x, y) { return x + y; } console.log(add(1, 2));
可选参数 ?
function buildName(firstName: string, lastName?: string) { if (lastName) return firstName + " " + lastName; else return firstName; } let result1 = buildName("Bob"); // 正确 let result2 = buildName("Bob", "Adams", "Sr."); // 错误,参数太多了 let result3 = buildName("Bob", "Adams"); // 正确
默认参数
function calculate_discount(price:number,rate:number = 0.50) { var discount = price * rate; console.log("计算结果: ",discount); } calculate_discount(1000) calculate_discount(1000,0.30)
剩余参数(就是我们不知道传多少个参数)
function addNumbers(...nums:number[]) { var i; var sum:number = 0; for(i = 0;i<nums.length;i++) { sum = sum + nums[i]; } console.log("和为:",sum) } addNumbers(1,2,3) addNumbers(10,10,10,10,10)
匿名函数和js差不多
箭头函数和es6的一样
var foo = (x:number)=>10 + x console.log(foo(100))
语法为 var 函数名字 = (参数)=> {函数体}
方法重载
function disp(s1:string):void; function disp(n1:number,s1:string):void; function disp(x:any,y?:any):void { console.log(x); console.log(y); } disp("abc") disp(1,"xyz");
相关文章推荐
- sql 上一条、下一条记录再次改进(文章底部红色字体)及如何在子查询中使用limit语法!我这个脑子啊
- Android.mk文件语法规范及使用模板
- 基于JSP编译器基本语法的使用详解
- sql语法复习:增删查改,各种数据库对象创建和函数使用
- Hibernate框架中,使用JDBC语法
- Oracle DECODE函数语法使用介绍
- eclipse使用与java语法规则
- 使用TypeScript,AngularJs和Web API构建基本的CRUD Web 应用
- TypeScript 基本语法
- C++中正则表达式使用,正则表达式语法以及常用正则表达式大全
- Dom4j使用Xpath语法读取xml节点
- 4、Objective-C语法之Category的使用
- Javascript工具 - 使用JSLint完成JavaScript语法检查
- 15、Objective-C语法之KVO的使用
- Flex标签语法的使用
- 语法:MySQL中INSERT INTO SELECT的使用
- 使用android studio开发时支持Lambda语法
- 使用Xpath定位元素(和元素定位相关的Xpath语法)
- BAT文件语法和技巧(bat文件的编写及使用)
- 使用TypeScript开发微信小程序的方法