TypeScript基础语法

本文介绍了TypeScript的基础概念,包括变量声明、基本数据类型、数组、枚举、元祖等,并深入探讨了接口、类、泛型等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//string

let str:string="wc"

 

//数字类型

let numb:number=1

 

//布尔

let bool:boolean=false

 

//数组类型

let arr:number[]=[1,2,3,4]

// let arr2:[]number=[1,2,3] 不支持,和java有区别

 

//枚举

enum Weeks{Mon,Tue,Wed}

let day=Weeks.Mon;

console.log(day) //0

console.log(Weeks[0]) //Mon

console.log(Weeks["Mon"]) //0

 

//any任意类型

let anye:any=new Array();

anye=2

 

//undefined,null

let def:undefined=undefined

 

//联合类型

let wc:number |string |boolean

 

//元祖 来自于C#

let ele:[string,number]=["sb",19]

 

//类型推论

let ww=3 //number

let mm; //any

 

//类型断言

let dsw:number|string|boolean="this sssjsj"

let strlen:number=dsw.length

strlen=(<string>dsw).length //有泛型的意思

strlen=(dsw as string).length

 

//接口 行为的抽象,只是定义一个规范并不实现

// 一定义接口

interface Animal {

Eat(food:string):string; //定义一个接口方法,具体的实现需要实现接口 体现多态的根源

}

interface Sleep {

wok(food:string):string; //定义一个接口方法,具体的实现需要实现接口 体现多态的根源

}

//实现,需要实现所有方法,否则是抽象类,接口可以多继承

class People implements Animal,Sleep{

Eat(food:string):string{

return "肉" +food;

}

wok(food:string):string{

return "睡觉"

}

 

}

let p=new People();

console.log(p.Eat("主"));

 

//接口二多函数的约束

interface CheckFunction{

(a:string,b:number):boolean

}

let func:CheckFunction=(str:string,num:number)=> false;

 

//接口三多数组的约束

interface CheckArray {

[index:number]:String

}

 

let arr2:CheckArray=["222","22","1"]

 

//接口四多json的约束

interface CheckJson{

name:string,

readonly age:number, //只读属性

sex?:string //可选属性

}

function showJson(n:CheckJson){

console.log(JSON.stringify(n))

}

showJson({name:"李洋",age:24})

 

//类的定义 public 公共的,private 私有的 protected 受保护的,只能在子类和内部访问

class Person{

name:string;

age:number;

constructor(name:string,age:number){

this.name=name;

this.age=age;

}

pint():string{

return this.name+":"+this.age;

}

}

let ppd=new Person("ppd",35);

console.log(ppd.pint())

 

//类的继承

class Student extends Person {

static em="wu";//静态属性

school:string;

constructor(name:string,age:number,school:string){

super(name,age);

this.school=school;

}

pint():string{ //多态的具体实现

return this.name+":"+this.age+":"+this.school;

}

static funccc(){//静态方法

 

}

}

let ppd2=new Student("ppd",35,"神大");

console.log(ppd2.pint())

 

// js静态方法/属性

// function Funcc(){

// //实例属性

// this.name="jj";

// //实例方法

// this.pint(){

// }

// }

// Funcc.age=19;//静态属性

// Funcc.pint2=()=>{} //静态方法

 

//抽象类/抽象方法

//1:抽象类是提供其他继承的基类,不能被实例化

//2:抽象方法只能包含在抽象类中,抽象类包含抽象方法和非抽象方法

//3:子类继承抽象类,实现抽象方法

abstract class Workenr{

abstract eat():string;

run(){

console.log("1")

}

}


 

//函数定义

function addp(x,y):number{

return x+y;

}

//匿名函数

let show=(a,b):number=>a+b;

 

function add3(a:number,b:number):number{

return a+b;

}

function add4(a:string,b:number=20,c?:string):string{ //默认 和 可选 参数

return a+b;

}

console.log(add4("wc"))

//剩余参数

function spadd(a:number,b:number,...arr:number[]):number{

var sum=arr.reduce((pre,cur)=>pre+cur)

return a+b+sum;

}

console.log(spadd(1,2,3,4,5,6));

 

//函数重载

function getInfo(name:string):void;

function getInfo(age:number):void;

function getInfo(str:any):void{

if(typeof str==="string"){

console.log(1)

}else if(typeof str==="number"){

console.log(2)

}

}

getInfo("sssskk")

 

//泛型函数

function pintnum<T>(arr:T[]):void{

for(var v of arr){

console.log(v)

}

}

pintnum<string>(["wu","li","sb"])

pintnum<number>([1,2,3,4])

 

//泛型类

class MyArray<T>{

public name:T;

public list:T[]=[]

add3(v:T):void{

this.list.push(v)

}

}

var arr6=new MyArray<number>();

arr6.add3(1);

console.log(arr6.list)

 

//泛型接口

interface Iadd<T>{

(x:T,a:string):void;

}

var add8:Iadd<number>=(a:number,y:string):void{

console.log(a,y);

}

console.log(add8(5,"sd"))

 

### TypeScript 基础语法教程 TypeScript 是一种开源的编程语言,它扩展了 JavaScript 的功能,提供了静态类型检查和其他特性。以下是 TypeScript基础语法内容: #### 1. 变量声明 在 TypeScript 中,变量可以通过 `let` 或 `const` 关键字进行声明,并且可以指定其类型。例如: ```typescript let message: string = "Hello World"; // 声明一个字符串类型的变量 ``` 注意:这里的 `string` 是小写的,和 `String` 不同。`string` 是 TypeScript 中定义的字符串类型,而 `String` 是 ECMAScript 中定义的一个类[^2]。 #### 2. 数据类型 TypeScript 提供了多种数据类型,包括但不限于以下几种: - **字符串 (string)**:用于表示文本数据。 - **数字 (number)**:用于表示整数或浮点数。 - **布尔值 (boolean)**:用于表示真 (`true`) 或假 (`false`)。 - **数组 (Array)**:用于存储一组相同类型的值。 - **元组 (Tuple)**:用于存储固定数量和类型的值。 - **枚举 (Enum)**:用于定义一组命名的常量。 - **任意类型 (any)**:用于表示任意类型的值。 例如,元组的定义如下: ```typescript let t1: [number, string, number] = [1, 'a', 3]; // 元组限定了各个数组中的类型值 let t2: [number, string, number?] = [1, 'a']; // 后面加上一个?代表可选 ``` 上述代码中,`t1` 是一个包含三个元素的元组,分别对应 `number`、`string` 和 `number` 类型。而 `t2` 的第三个元素是可选的[^4]。 #### 3. 运算符 TypeScript 支持多种运算符,其中严格相等运算符 `===` 是一种重要的运算符。它不仅比较两个操作数的值,还比较它们的类型。如果两个操作数的类型和值都相同,则返回 `true`;否则返回 `false`。例如: ```typescript console.log(0 === ""); // 返回 false,因为它们的类型不同 console.log(null === undefined); // 返回 false,尽管在某些比较中它们被视为“相等” ``` 由于其严格性,使用 `===` 通常被认为是一种更好的编程实践,因为它减少了意外行为并提高了代码的可读性[^3]。 #### 4. 函数 函数在 TypeScript 中可以通过指定参数类型和返回值类型来增强代码的安全性。例如: ```typescript function add(a: number, b: number): number { return a + b; } ``` 上述代码中,`add` 函数接受两个 `number` 类型的参数,并返回一个 `number` 类型的结果。 #### 5. 接口 接口是 TypeScript 中的一种重要特性,用于定义对象的结构。例如: ```typescript interface Person { name: string; age: number; } let person: Person = { name: "Alice", age: 25, }; ``` 上述代码中,`Person` 接口定义了一个对象的结构,包含 `name` 和 `age` 属性。 #### 6. 在线练习 如果没有搭建 TypeScript 的开发环境,可以直接使用在线 Playground 平台(https://www.typescriptlang.org/play)进行编码练习[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值