TypeScript快速了解_接口_03
2022/2/28 23:24:40
本文主要是介绍TypeScript快速了解_接口_03,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
TypeScript
接口
1.接口初探
function pr(labelledObj: { lable: string }) { console.log(labelledObj.lable) } let myObj = { size: 10, lable: 'size 10 object' }; pr(myObj)
使用接口描述来重现上面代码,使必须包含lable属性且类型为string
interface lableledvalue { lable: string } function pr( labelledObj: lableledvalue ) { console.log(labelledObj.lable) } let myObj = {size: 10, label: "Size 10 Object"}; pr(myObj);
lableledvalue
接口就像一个名字, 它代表有一个lable
属性为string
的对象,只要传入的对象满足上面lableledvalue提到的必要条件,那么就是可以被允许。
2.可选属性
interface SquareConfig { color?: string; width?: number; } function createSquare(config: SquareConfig): {color: string; area: number} { let newSquare = {color: "white", area: 100}; if (config.color) { newSquare.color = config.color; } if (config.width) { newSquare.area = config.width * config.width; } return newSquare; } let mySquare = createSquare({color: "black"});
可选属性的接口就是在属性名定义的后面加一个?符号,表示不传也可以
3.只读属性
interface Point { readonly x: number; readonly y: number; }
设置属性命前用readonly来指定只读属性
let p1: Point = { x: 10, y: 20 }; p1.x = 5; // error!
也可以通过赋值一个对象字面量来构造一个Point
,赋值后x
和y
再也不能被改变了
let a: number[] = [1, 2, 3, 4]; let ro: ReadonlyArray<number> = a; ro[0] = 12; // error! ro.push(5); // error! ro.length = 100; // error! a = ro; // error!
TypeScript具有ReadonlyArray<T>
类型,它与Array<T>
相似,只是把所有可变方法去掉了,因此可以确保数组创建后再也不能被修改:
a = ro as number[];
上面代码最后一行使用ReadonlyArray
赋值到一个普通数组不可以,但是可以使用类型断言重写 可以用来手动指定一个值的类型
这篇关于TypeScript快速了解_接口_03的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享