当前位置:网站首页>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]{
}
边栏推荐
- 有依赖的背包,狭义(二进制枚举),广义(树形dp)
- QTSS回调例程
- 4-20mA to 4-20mA 0-5V to 0-5V analog signal isolation transmitter
- Darwin分析经验
- Material and application circuit diagram of 0-10V, 4-20mA current voltage to PWM isolation converter
- 5-17陕西科技大学的隐藏学生服务
- Simple chrome script automatically skips the charging acknowledgment page after the video playback of station B ends
- 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)
- Wireless charging mouse pad RGB LED lighting wireless charging mouse pad
- 【转】Darwin Streaming Server 核心代码分析
猜你喜欢

Fs5383a lithium battery 3.7V input power supply solar lawn lamp drive IC

Proportional valve amplifier 1a, 2a, 3a, 5A proportional valve drive module 0-10V to 0-24v

Antd is not defined

Chrome浏览器设置 【显示右上角 翻译语言图标】

2022/07/14 learning notes (day07) array
![Chrome browser settings [display the translation language icon in the upper right corner]](/img/87/018e0ab92f698b77ada98ef555bba8.png)
Chrome browser settings [display the translation language icon in the upper right corner]

【力扣】复制带随机指针的链表

Hm8203 linear two string charging management controller IC

3.7V lithium battery boost to 5v1a, fs2114 boost conversion chip design layout

Digital signal isolation module adum1401arwz yadeno in stock
随机推荐
[USACO06DEC]The Fewest Coins G(混合背包)
Boost dc/dc converter
Golang multi project workspace construction
vscode 使用技巧1
Lithium battery charging management chip
Darwin reflex summary
2021-11-17 esp32 pin reference
绝世好题(位运算优化dp)
【力扣】二叉树的前序遍历
Decorate Apple Tree
【力扣】设计循环队列
MCU single chip OTP
配置VsCode中‘log’快捷键去掉console.log(‘‘);中的分号;
Acwing第 59 场周赛(AK)
【力扣】另一棵树的子树
[transfer] Darwin streaming server core code analysis
HRA 1~12w series 12V wide voltage 9~18v to ± 250VDC boost converter
带透明png转换成c数组
c语言 指定日期开始多少天 显示
Vscode configuring golang development environment