ts学习笔记(1)

ts的接口有两种,一个是对象类型接口,一个是函数类型接口

先来看对象类型的接口

interface A{name:string,age:number,sex?:string}

var obj1:A={name:'xx',age:20,sex:'man'}
/* 接口定义了什么属性,该接口类型的对象就只能有这些属性,
如果再添加其他属性则会报错。?表示该属性可以没有*/

interface A{name:string,age:number}
interface B{data:A[]}

var result={data:[{name:'xx',age:20},{name:'yy',age:18,sex:'man'}]}

function fn(result:B):void{
        console.log(result)
    }

fn(result)
/*本来接口A是没有sex属性的,但是这样写并不会报错
如果直接把result的值带进fn函数则会报错,这时候可以使用泛型或者as关键字进行断言*/
function fn<B>(obj:B):void{
    console.log(obj)
}
fn({data:[{name:'xx',age:18},{name:'zz',age:20,sex:'man'}]})
//或者
fn({data:[{name:'xx',age:18},{name:'zz',age:20,sex:'man'}]} as B)

然后是函数类型的接口

interface A{
    doSomething():void;
    ():void;
}
var B:A=(()=>{console.log('hahha')})as A;
B.doSomething=():void=>{console.log('接口')}

//要将B断言为A类型,否则会报错

然后还可以用类实现接口

interface A{
    doSomething():void;
    
    name:string;
}

class Test implements A{
    constructor(name:string){
        this.name=name;
    }
   public name:string;
    doSomething():void{
        console.log('实现A接口')
    }
}

接口还可以继承接口

interface A{
    doSomething():void;
    
    name:string;
}

interface B extends A{
    age:number;
    doSomething():number;
    name:any;
}
//B接口也有A接口的属性,可以重写A接口的属性和方法,但是属性只能设置包含A接口属性类型在内的的类型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答你关于 TypeScript Symbol 和模块的问题。 首先,Symbol 是 TypeScript 的一种新的基本数据类型,它可以用来创建唯一的标识符。在 TypeScript ,Symbol 主要有两种用法: 1. 作为对象属性的键值,用来表示一个对象属性的唯一标识符。 2. 作为一个类的静态属性或方法,用来表示该类的唯一标识符。 下面是一个使用 Symbol 作为对象属性键值的示例: ```typescript const key = Symbol('myKey'); const obj = { [key]: 'value' }; console.log(obj[key]); // 输出'value' ``` 在上面的代码,我们使用 Symbol('myKey') 创建了一个新的 Symbol,然后将该 Symbol 作为对象 obj 的属性键值,并赋值为'value'。最后,我们通过 obj[key] 的方式来访问该属性,并输出了'value'。 另外,模块是 TypeScript 的另一个重要概念,它用来组织和管理代码。在 TypeScript ,模块可以使用 import 和 export 命令来进行导入和导出。下面是一个使用模块的示例: ```typescript // moduleA.ts export const num = 123; // moduleB.ts import { num } from './moduleA'; console.log(num); // 输出123 ``` 在上面的代码,我们定义了一个名为 num 的常量,并将其导出。然后,在另一个模块,我们使用 import 命令将 num 导入,并通过 console.log 输出了它的值。 这就是关于 TypeScript Symbol 和模块的简单介绍,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值