TypeScript总结

变量声明

在ts中声明变量使用let 和 const

let lang: string = "chy";
let ax: number = 18;
//ax = "chy" 不能将类型“string”分配给类型“number”。ts(2322)
const pi = 3.14;
// pi = 1; 无法分配到 "pi" ,因为它是常数。ts(2588)

数据解构

解构就是将数据分解,赋值给不同的变量

//解构数组
let input = [89, 64, 2018, 10];
let [first, second] = input;
console.log(first); // 89
console.log(second); // 64
let [one, ...others] = input; //剩余变量
console.log(...others);
//展开
let newArr = [89, ...others, 18];
console.log(newArr);
//解构对象
let o = {
  a: "foo",
  b: 12,
  c: "bar"
};
let {a, b} = o;//注意使用{},且变量名需与对象中道属性名一致
console.log(a, b);

函数

ts中的函数使用完整类型来定义,就是可以声明函数传入的参数的可以声明他是哪种方类型,也可以声明返回类型。
具体代码如下:

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

可选参数

//可选参数,必须放在必要参数后
function say(firstName: string, lastName?: string) {
    if(lastName) {
        return `Hello ${firstName} ${lastName}!`;
    }
    return `Hello ${firstName}!`;
  }
  console.log(say('chy'));
  console.log(say('chy', 'is so blue'));

剩余参数

当不知道要传进来多少个参数时,可以使用剩余参数来接受
代码如下:

function sheng(s1:string, ...others:string[]){
    console.log(others);
  }
  sheng("chy","li","yang")//[ 'li', 'yang' ]

类是面向对象的编程形式,是属性和方法的集合,可以生成Object

类的声明和使用

class Person{
    name: string;//属性
    age: number;//属性
    constructor(name:string,age:number){//构造函数,声明对象的时候使用
        this.name = name;
        this.age = age;
    }
    printPerson():void{
        console.log(this.name);
        console.log(this.age);
    }
  }
  let person = new Person("chy",18);
  person.printPerson();

访问权限

访问权限分为public 、private
public 可以被外界直接访问,但是 private不能被外界直接访问
然后可以设置set、get函数获取内部变量
如下代码:

//getter和setter
class MyInfo { //class是关键字,类名默认全部大写首字母
  private readonly _name: string; //私有属性,外部不可访问。readonly使其只能在初始化时赋值,以后不可更改。    
  private _weather: string; //私有属性,习惯以_开头进行命名

  constructor(name: string, weather: string){ //构造函数,一般用于初始化
    this._name = name;
    this._weather = weather;
  }
  get name(): string {
    return this._name;
  }
  set name(value: string) {  //error! _name有readonly属性
    this._name = value;
  }
  get weather(): string {
    return this._weather;
  }
  set weather(value: string) {
    this._weather = value;
  } 
}
  
let myData = new MyInfo('QiGe', 'raining'); //使用new关键字生成对象
console.log(myData.name, myData.weather);
myData.weather = 'sunny'; //OK
myData.name = 'Wang'; //error!
console.log(myData);

静态属性 static

拥有静态属性的代码块,只会执行一次,可以直接使用,而不需要实例化
如下代码:

//静态属性,内建或自定义,无需new即可使用
console.log(Math.round(89.64)); //90
console.log(Math.pow(2, 8)); //256
class MyStaticClass {
  static place = 'Earth';
  static printInfo() {
    console.log('We have only one Earth!');
  }
}
console.log(MyStaticClass.place);
MyStaticClass.printInfo();

模块

对于大型的项目,我们需要使用模块进行管理。每个 .ts 文件就是一个模块,通过 export 来对外部模块暴露元素,通过 import 来引入模块。关键字是export

完结撒花

以上便是对typescript的总结,发现typescript和java挺像的,我也更适合有规则的编程语言。总的来说,上面的代码,都是跟着棋歌教学网上一个一个亲手敲的,对于我而言,还是更喜欢ts这种规则性强的编程语言。同时感谢王勇老师的棋歌教学网!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeScript是由微软开发的一款开源的编程语言,它是JavaScript的超集,遵循最新的ES6、ES5规范,并扩展了JavaScript的语法。它更像后端的Java、C#等面向对象语言,可以用于开发大型企业项目。谷歌也在大力支持TypeScript的推广,谷歌的Angular2.x+就是基于TypeScript语法开发的,最新的Vue和React也可以集成TypeScript。在Node.js框架中,Nest.js和midway也使用了TypeScript语法。\[1\] TypeScript中的never类型是任何类型的子类型,也可以赋值给任何类型,但没有类型是never的子类型或可以赋值给never类型,即使是any类型也不可以赋值给never。这意味着声明为never类型的变量只能被never类型所赋值。例如,可以使用throw new Error()来抛出一个错误,该函数的返回类型就是never。\[2\] 在TypeScript中,可以声明浮点型变量并赋予其一个浮点数值,例如let num: number = 3.1415926。同时,也可以声明字符串类型变量并赋予其一个字符串值,例如let str: string = "Hello, TypeScript"。\[3\] 总结来说,TypeScript是一种扩展了JavaScript语法的编程语言,适用于开发大型企业项目,并且具有丰富的类型系统和面向对象的特性。它的语法规范遵循最新的ES6、ES5规范,可以与各种前端框架和后端框架集成使用。 #### 引用[.reference_title] - *1* *2* *3* [学习TypeScript4这一篇就够了](https://blog.csdn.net/qq_38490457/article/details/109965694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值