当前位置:网站首页>TypeScript学习
TypeScript学习
2022-07-17 05:13:00 【涵。】
自动编译ts文件为js:tsc --init
实时编译:tsc -w ./path/file.ts
类型注解:一种为函数或变量添加的约束
接口:使用interface定义一个对象,里面定义了数据格式
TS基本数据类型:
undefined和null可以作为其他类型的子类型- 数组定义:
let arr1:number[]=[1,2,3]
let arr2:Array<number>=[1,2,3]
- 枚举类型:
enum
enum Color={
red,
blue
}
let color:Color=Color.red //输出的是元素的编号,即0
any类型:不确定当前数据是什么类型又想把他存储起来,可以使用anyvoid类型:函数没有返回值
function show():void{
}
object类型- 联合类型:
function show(str:number|string){
}
- 类型断言:
//如果不知道传入数据是数字还是字符串,又想获取它的长度
if((<string>str).length){
return (<string>str).length
}
接口
interface IPerson{
readonly name:string, //表示该属性只读
age?:number //?表示age这个属性没有也是可以的
}
函数类型
interface IPerson{
(name:string,age:number):boolean
}
const person:IPerson=function(name:string,age:number):boolean{
}
类类型
interface IPerson1{
fly1()
}
interface IPerson2{
fly2()
}
//定义一个接口继承多个接口
interface IPerson extends IPerson1,IPerson1{
}
//实现接口中的方法,类可以实现多个接口
class Person implements IPerson1,IPerson2{
fly1(){
console.log('1')
}
fly2(){
console.log('2')
}
}
多态
class Animal{
}
class Dog extends Animal{
}
class Pig extends Animal{
}
const dog:Animal=new Dog()
const pig:Animal=new Pig()
修饰符(主要描述类中成员的可访问性)
public //都可以访问
private //类外部无法访问,子类也不可以访问
protected //类外部无法访问,子类内部可以访问
readonly修饰类中成员属性,可以在constructor中修改该属性
readonly修饰类中构造函数中的参数,类中会包含该属性成员
class Person{
constuctor(readonly name:string){
this.name=name
}
}
const p=new Person('x')
console.log(p.name) // x
存取器(get和set)
静态属性(static)
不能在constructor中使用this调用static属性,只能使用类.属性的方法
class Person{
static name1:string
static show(){
console.log(1)
}
}
const person=new Person('x')
console.log(Person.name,Person.show()) //注意是Person类,而不是实例对象person
抽象类(包含抽象方法,但方法没有具体实现内容)
abstract class Animal{
abstract eat(){
}
}
class Dog extends Animal{
eat(){
console.log(1)
}
}
函数及函数类型
cosnt add:(x:number)=>number=function(x:number):number{
}
剩余参数
function show(str:string,...args:string[]){
}
函数重载
function add(x:string,y:string):string
function add(x:number,y:number):number
function add(x:number|string,y:number|string):number|string{
}
泛型
在定义函数、接口、类时,不能预先确定要使用的数据类型
function add<T>(value:T):T[]{
}
const arr=add<number>(200)
//多个泛型
function add<T,K>(value:T,num:K):[T,K]{
}
边栏推荐
猜你喜欢
![[详细教程安装][配置] VsCode中关于Eslint的辅助插件](/img/d4/31272772b96d3e2f702da74478fd95.png)
[详细教程安装][配置] VsCode中关于Eslint的辅助插件

MySQL Workbench基本使用【创建一个数据库】

WebService接口的创建与实现

Rs-485/232 to 4-20ma/0-10v isolated d/a converter

Dac7512n analog mixed signal IC converter

Solve cannot read properties of null (reading 'pickalgorithm')

2022/07/11 第五小组 丁帅 学习笔记 day04

【力扣】另一棵树的子树

Hm8203 linear two string charging management controller IC

RestAPI实现自动补全 & 案例实现(搜索框输入进行自动补全)
随机推荐
【力扣】二叉树的前序遍历
Ht7727 ht7730 ht7733 ht7737 ht7750 asynchronous DCDC boost IC
Darwin reflex summary
Introduction to goroutine, a high concurrency feature of golang
2021-11-17 esp32 pin reference
嵌入式C语言volatile作用
Simple chrome script automatically skips the charging acknowledgment page after the video playback of station B ends
[USACO06DEC]The Fewest Coins G(混合背包)
2021 - 09 - 15
MEX and Increments
MCU single chip OTP
Boost dc/dc converter
數學基礎課2_歐拉函數,線性篩,擴歐
vscode 使用技巧1
2022/07/12 学习笔记 (day05)JS内置函数
Thermal resistance PT100 cu50 isolation converter to 4-20mA analog output temperature transmitter 0-10V
MCU single chip OTP
Acwing第57场周赛(AK)
QTSS回调例程
【力扣】用队列实现栈