赞
踩
写的代码可以在这个网址练习或验证代码是否正确(演练场中练习代码):TypeScript: JavaScript With Syntax For Types.
let msg: string = 'hello world'
| | |
| | 变量的数据类型
| 变量名,自定义
声明变量的关键字,const代表常量,let代表变量
- //字符串,可以用单引号或者双引号
- let msg: string = "hello"
- console.log('msg'+msg)
- //数值,整数,浮点数都可以
- let age: number = 21
- console.log('age:'+age)
- //布尔
- let finished: boolean = true
- console.log('finished'+finished)
- //any:不确定类型,可以是任意类型,赋成jack也能改成21
- let a: any = 'jack'
- a=21
- //union:联合类型,可以是多个指定类型中的一种
- let u: string|number|boolean = 'rose'
- u = 18
- console.log("u:"+u)
- //对象
- let p = {name:'Jack',age:12}
- console.log(p.name)
- console.log(p['name'])
- //数组,元素可以是任意其他元素
- let names: Array<string> = ['Jack','Rose']
- let ages: number[] = [21,18]
- console.log(names[0])
支持if - else 和 switch
- let num:number = 21
- if(num % 2 === 0){
- console.log(num + '是偶数')
- }else{
- console.log(num + '是奇数')
- }
-
- //判断是否为正数
- if(num > 0){
- console.log(num+'是正数')
- }else if(num < 0){
- console.log(num+'是负数')
- }else{
- console.log(num+'为0')
- }
-
- //判断变量是否存在
- let data: any;
- if(data){
- console.log("数据存在:"+data)
- }else{
- console.log("数据不存在!")
- }
‘’===‘’是比较严格比较操作符,他在比较时不会进行类型转换当数据值和类型都相等才会返回true。
‘’==‘’是相等比较操作符,它在比较时会进行隐性的数据转换,把两个比较数转换为同一种类型,会有意想不到的结果。
- console.log(1 == "1"); // true
- console.log(true == 1); // true
TypeScript中,空字符串,数字0,null,underfined都被认为是false,其他则为true
- if(true){
- //num非空,可以执行逻辑
- }
用途:一般情况下,当一个数啥也没有,我们并不用处理它,用这个知识点就可以判定它存不存在,可以帮助我们节省麻烦。
switch和其他编程语言中差不多
- let grade: string='A'
- switch(grade){
- case 'A':{
- console.log('优秀')
- break
- }
- case 'B':{
- console.log('合格')
- break
- }
- }
for和while
- for(let i = 1;i<=10;i++){
- console.log("点赞" + i + "次")
- }
-
- let i = 1;
- while(i <= 10){
- console.log("点赞" + i + "次")
- i++;
- }
当然,一些内置类型有自己的快捷语法,比如Array等
- let names: string[] = ["Jack","Rose"]
-
- //fot in 迭代器,遍历得到数组角标
- for(const i in names){
- console.log(i + ':' +names[i]) //i就是拿到的角标,输出i就是输出下标
- }
-
- //for of 迭代器,直接得到元素
- for(const name of names){
- console.log(name)
- }
函数用function关键字来声明函数,并且支持可选参数、默认参数、箭头函数等特殊语法。
- //无返回值,void可省略
- function sayHello(name: string):void{
- console.log("你好," + name +"!")
- }
-
- //有返回值函数
- function sum(x: number,y: number): number{
- return x + y
- }
- let result = sum(21, 18)
- console.log("21 +18" + result)
-
-
- //箭头函数(简单定义函数的方法)
- let sayHi = (name: string) =>{ //没有写function,因为这里默认定义的变量的类型是function
- console.log("你好," + name + "!")
- }
- sayHi("Rose")
-
- //可选参数,在参数后加?,表示该参数是可选的
- function sayHello(name?: string){
- name = name ? name : "陌生人"
- console.log("你好," + name + "!")
- }
- sayHello("Jack")
- sayHello()
-
- //默认参数
- function say(name: string = "陌生人"){ //这里看起来像是把name定义成陌生人
- console.log("你好" + name +"!") //但实际上是如果没传参,用定义的,传参了就用传入的参数
- }
- say("Jack")
- say()
typescript具有面向对象编程的基本语法,例如Interface\class\enum等。也具备封装、继承、多态等面向对象基本特征。
- //定义枚举
- enum M{
- HI = "hi",
- HELLO = "Hello"
- }
-
- //定义接口,抽象方法接受枚举参数
- interface A{
- say(m: M):void //凡是接口和类内的方法不需要加function关键字
- } //这里的方法名叫say ,参数是m 类型是M前面定义的,返回值是void,无返回值
-
- //定义一个类来实现接口
- class B implements A{ //实现了A接口
- say(m: M):void{
- console.log(m + ",I am B")
- }
- }
-
- //初始化对象
- let a:A = new B()//这里是把子类对象赋值给了父类类型,a的类型是A,由B实现,
- //所以也没错,正常来说应该是a:B
- //调用方法,传递枚举参数
- a.say(M.HI)
- class Rectangle{
- private width: number
- private length: number
-
- constructor(width: number,length: number){
- this.width = width
- this.length = length
- }
- public area(): number{
- return this.width * this.length
- }
- }
- class Square extends Rectangle{
- constructor(side: number){
- super(side, side)
- }
- }
-
- let s = new Square(10)
- console.log("正方形面积为:"+ s.area())
目的:提高代码复用性,应用复杂时,我们可以把功能抽取到单独的ts文件中,每个文件都是一个模块(module),模块之间可以相互加载,提高代码复用性
注意文件名,这个是rectangle.ts文件
- //定义矩形类,通过export导出
- export class Rectangle{
- private width: number
- private length: number
-
- constructor(width: number,length: number){
- this.width = width
- this.length = length
- }
- public area(): number{
- return this.width * this.length
- }
- }
-
- //定义工具方法,求矩形面积,并通过export导出
- export function area(rec: Rectangle): number{
- return rec.width * rec.length
- }
再定义一个index.ts
- //通过import语法导入,from后面写文件的地址
- import {Rectangle, area} from'../rectangle' //这里是上目录
-
- //创建Rectangle对象
- let r = new Rectangle(10,20)
-
- //调用area方法
- console.log("面积为:" + area(r))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。