typescript学习,不断更新中
发布日期:2021-05-07 06:42:31 浏览次数:22 分类:精选文章

本文共 3824 字,大约阅读时间需要 12 分钟。

第一个ts实例

const hello : string = "hello"console. log(hello)

typescript安装

npm i -g typescript
tsc -v 查看版本

var message:string = "hello"console. log(messag)//test.ts文件//tsc test. ts编译ts文件//生成test.jsvar meaasge="hello"console. log(message)

用node命令执行一下

node test.js

typescript面向对象编程实例

class Site {  name():void{     console.log(“roo”)  }}var obj=new Site()obj.name()

TypeScript基础类型

任意类型 any 数字类型 number   let n:number = 12字符串类型 string  let name:string = “Jay”布尔类型 boolean let flag:boolean=true数组类型 无  let arr:number[] = [1,2]              使用数组泛型             let arr:Array
=[1,2]元组 无 let x=[string,number] x=["jay",1]枚举 enum enum Color{Red,Green,Blue} let c :Color = Color.Blue console.log(c)//2void void function hello():void{ alert(“hello”)}null null 表示对象值缺失undefined undefined 初始化变量为一个未定义的值never never 其他类型,代表不会出现的值

带参数函数

function add(x:number,y:number):number {  return x+y}console.log(add(1,2))

可选参数函数

function buildName( firstName:string,lastName?:string ){      if (lastName ){         return fotstName+" "+lastName   }else{         return firstName   }}

默认参数

function calculate(price:number , rate:number = 0.50){     }

剩余参数

function name(  firstName:string, ...restOfName:string[]){   }

联合类型

var a = val : string | numberfunction display (name:string|string[]){     if(typeof name =="string"){     }else{     }}

接口

interface IPerson {      firseName : string,   lastName: string,   sayHi : () =>string}var customer : IPerson = {      firseName:"Jay",   lastName:"J",   sayHi: ():string => {   return ""Hi baby}}

class Person {   }class Car {     //字段  engine:string;  //构造函数  constructor(engine:string){         this. engine = engine  }  //方法  disp():void{      console. log("发动机"+this.engine)  }}//创建一个对象var obj = new Car("Xxs1")//访问字段console.log ("读取型号",obj.engine)//访问方法obj. disp()

类的继承

class Shape {     Area:number    constructor(a:number){       this.Area = a  }}class Circle extends Shape {     disp ():void{        console. log("a"+this. Area)   }}var obj new Circle(233)obj.disp()

Typescript 不支持多继承,但是可以链式多重继承

class Root {     str:string}class Child extends Root{   }class Leaf extends Child{   }var obj = new Leaf ()obj. str="hello"console. log(obj.str)

继承父类方法重写

class PrinterClass {     doPrint():void {       console. log("父类")  }}class StringPrinter extends PrinterClass{     doPrint():void {       super. doPrint()//调用父类方法    console. log("子类")  }}

static关键字

//static关键字用于定义类的数据成员为静态,静态成员可以直接通过类名调用class StaticMem {     static num:number  static disp():void{        console. log("num="+StaticMem.num)   }}StaticMem. num=12//初始化静态变量StaticMem.disp()//调用静态方法

instanceof 运算符

//判断对象是否为指定的类型class Person {   }var obj = new Person()var isPerson = obj instanceof Personconsole. log("obj对象是Person实例化来的吗"+isPerson)

访问控制修饰符

public(默认)公有,可以在任何地方被访问protected 受保护,可以被自身以及其子类和父类访问private 私有,只能被其定义所在类访问

类和接口

类可以实现接口,使用关键字implements

interface ILoan {     interest: number}class AgriLoan implements ILoan {     interest: number  rebate: number  constructor(interest: number, rebate: number) {         this. interest = interest      this. rebate = rebate   }}var obj = new Agriloan(10, 1)console. log("利润”+obj.interest,“抽成”+obj.rebate)

TypeScript命名空间 tsc - - out app. ts Test. ts

namespace SomeNameSpaceName {     export interface ISomeInterfaceName {   }  export class SomeClassName {   }}//在另一个空间内调用SomeNameSpaceName.SomeClassName;//如果一个命名空间在一个单独的文件,则用///引用他///
//命名空间可以嵌套namespace name{ export namespane name{ }}

Typescript模块

tsc - -module comments Test. ts
tsc - -module and Test. ts

//文件名 SSomeInterFace.tsexport interface SomeInterFace {   }//在另一个文件引入用import关键字导入import someInterfaceRef = requir("./SomeInterface")

Typescript声明文件

以 .d.ts后缀

//用declare关键字定义,举例jqdeclare var jQuery:(selector: string)=> any jQuery("#foo")

声明文件或模块

declear module Module_Name{   }

引入声明文件

///
上一篇:发布npm
下一篇:npm 命令

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月25日 00时43分09秒