TypeScript

interface

请添加图片描述

interface loginForm {
    username:string,
    password?:string, //可选属性
    readonly y: number;  //只读属性
}
const form:loginForm = reactive({
    username: "",
    password: '',
})
//接口函数
interface SearchFunc{
    (source:string,subString:string):boolean
}
let mySearch:SearchFunc

mySearch = (a:string,subString:string)=>{ //函数的参数名不需要与接口里定义的名字相匹配
    let result = a.search(subString);
    return result >-1
    
}
mySearch("22","#33")
//接口数组

```javascript
interface StringArray {
  [index: number]: string;
}

let myArray: StringArray;
myArray = ["Bob", "Fred"];

let myStr: string = myArray[0];
//继承接口
interface Shape {
    color: string;
}

interface Square extends Shape {
    sideLength: number;
}

let square = <Square>{};
square.color = "blue";
square.sideLength = 10;

数组只读



```javascript
let a: number[] = [1, 2, 3, 4];
let ro: ReadonlyArray<number> = a; //只读
a = ro as number[]; //使用类型断言重写,可以修改

泛型

function identity<T>(arg:T):T{
    return arg
}
console.log(identity<string>("123")) //调用函数 ,string传入类型
//注意我们没必要使用尖括号(<>)来明确地传入类型;编译器可以查看myString的值,然后把T设置为它的类型。 
//类型推论帮助我们保持代码精简和高可读性。如果编译器不能够自动地推断出类型的话,只能像上面那样明确的传入T的类型
//在一些复杂的情况下,这是可能出现的

数组类型

function loggingIdentity<T>(arg: T[]): T[] {
    console.log(arg.length);  // Array has a .length, so no more error
    return arg;
}
//也可以这样写
function loggingIdentity<T>(arg: Array<T>): Array<T> {
    console.log(arg.length);  // Array has a .length, so no more error
    return arg;
}
loggingIdentity([1,2,3])
//调用函数
function identity<T>(arg:T):T{
    return arg
}
let Myidentity:<T>(arg:T)=>T = identity
let Myidentity1:{<T>(arg:T):T} = identity
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CongJiYong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值