深夜办公室的“浓醇”秘密:当美女特助遇上硬核老板,这杯豆浆不简单

核心内容摘要

17c·moc:以数字雕塑点亮创意未来
探索未知之美:解密“隐藏部位”的诱惑与奥秘

八重神子“焊”出白水?解密奇幻传说中的“解绑”之道

上一节我们讲了可接口中可选属性的用法那么现在想这样一个问题小的时候我们看超人超人可以做任何事情。

不仅限于帮助人帮助动物帮助植物.....因为这些种类都有不同的“属性”我们不可以局限于某个属性那么这里我们也是可以有办法的。

interface IAnyObj { [prop: string]: any; } class SuperMan { public doAnyThing(anyObj: IAnyObj): void { console.log(超人做任何事情 , anyObj); } } let superMan new SuperMan(); superMan.doAnyThing({ age: 999 }); superMan.doAnyThing({ name: 任何人 }); superMan.doAnyThing([99, 55]);tsc index.ts在这里我们定义了IAnyObj的接口这里的[prop: string]: any;表示包含“任意字符串类型”的属性的事物都可以传递到doAnyThing的方法中。

最后的那个数组有点例外其实访问的时候他也会进行转换把索引按照字符串来读取。

其实这涉及到一个动态属性的问题。

比如传递过来的数据你不确定这个数据都有哪些属性那么就可以用下面的方法进行访问interface IAnyObj { [prop: string]: any; } class SuperMan { public doAnyThing(anyObj: IAnyObj): void { // console.log(超人做任何事情 , anyObj); let keys Object.keys(anyObj); if (keys.length) { for (let i 0; i keys.length; i) { console.log( 访问的属性 , keys[i], 对应的值为 , anyObj[keys[i]] ); } } } } let superMan new SuperMan(); superMan.doAnyThing({ age: 999 }); superMan.doAnyThing({ name: 任何人 }); superMan.doAnyThing([99, 55]); let arr [99, 55]; console.log(arr[0]);

导管素材网站免费资源-导管素材网站免费资源应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123