typeScript中接口和类型限制

“这是我参与更文挑战的第8天,活动详情查看: 更文挑战

1typeScript 中的接口

ts 的核心之一就是对具有结构的数据进行类型的检查。
接口是:对象的状态和行为方法的抽象描述
默认情况下,需要满足接口所描述的数据类型,
并且使用时字段是不能够少的,否者会报错
复制代码
定义一个接口,用来作为 person 对象中的类型使用
限定或者约束对象中的属性
第一 I 表示是接口,P 表示大写;
idCard只读[readonly],
age是数字类型,
sex是可选择[?]
[propN: string]: any  动态添加字段,可以用任意个
复制代码
interface IPerson{
    //idCard是一个只读属性,不能够修改的。
    readonly idCard: string,
    //age是必须的
    age: number,
    // sex是一个可有可无的属性
    sex ? : string,
    [propN: string]: any //动态添加字段哈,可以有任意多个
}

const person: IPerson = {
    idCard:"张三",
    age: 20,
    sex:'男',
    weight:'200kg'
}
console.log(person)
复制代码

2 typeScript中函数类型

 函数类型:通过调用接口的方式作为函数的类型来使用
 实现一个功能
 在str1中查找是否有str2;
 如果有返回true,否者返回false
复制代码
// 定义一个接口,用来作为某个函数的类型使用
interface ISearchHas {
    (str1:string,str2:string) : boolean
}
//定义一个函数,函数类型就是上面定义的接口
const lookforhas: ISearchHas = function(str1:string,str2:string) :boolean{
    return str1.search(str2) > -1
}
console.log(lookforhas("hello",'o'));//true
复制代码

3.数组类型限制

var arr: number[] = [1, 2, 3]; //数字类型的数组
var arr2: string[] = ["1", "2"]; //字符串类型的数组
var arr3: any[] = [1, "2", true]; //任意类型的数组
复制代码
数组 泛型 Array<elemType> 表示法
表示 数组的类型是数字的哈
var arr: Array<number> = [1, 2, 3];
console.log(arr);

任意类型的哈
var arr2: Array<any> = [1, true, "123"];
console.log(arr2);
复制代码

4 函数的返回类型

参数的数据类型是姓名的类型是string,年龄类型number
返回值值年龄 number 哈
function person(name: string, age: number): number {
    return age;
}
var ageNum: number = person("zahngs", 10);
console.log(ageNum);
复制代码
2.姓别参数不确定使用 有可能没有性别哈。
function person2(name: string, sex?: string): string {
    return name;
}
var name2: string = person2("张三", "sex");
console.log(name2);
复制代码
3.函数参数的默认值
function person(name: string = "张三", age: number = 10): number {
    return age;
}

var p: number = person();
console.log(p);
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享