• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

TypeScript 素描 - 高级类型、迭代器

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

/*
交叉类型,在TypeScrpt中是很特有的.所以值得认真学习
交叉类型是将多个类型合并为一个类型,这让我们可以把现有的多种类型叠加到一起成为一种
类型
交叉类型同时拥有 Person 和 Employee的成员
*/
let 交叉类型 = <Person & Employee>{};

/*
 联合类型,当方法的参数可以是string又可以是number的时候怎么办? 我们想要给方法的调
用者一个明确的提示 所以使用 any ?? 这自然是不对的,因为参数了可以传布尔,使用联合类
型完美解决此问题  Type | Type
*/
function 联合类型(arg: string | number): void | string {
    if (typeof arg == "string") {
        return arg;
    }
}


/*
类型保护  因为有可能我们不准确变量的类型,但是知道一个范围
我们可以使用 类型断言 <type> typeof interfaceof
*/

/*
类型别名 给类型起一个别名  type Container<T> = { value: T };
*/

/*
字符串字面量类型  允许我们为 string变量提供必须的固定值 ,也就是字符串的值必须是我
们内定的
*/
type Easing = "A" | "B" | "C";
function fun13(str: Easing) { };
fun13("A"); //这里只可以传 A B C


/*
有趣的链式编程来自 多态的this
*/
class BasicCalculator {
    public Add(): this {
        return this;
    };
    public multiply(): this {
        return this;
    };
    public Abs(): this {
        return this;
    };
}
let bc = new BasicCalculator();
bc.Add().Abs().multiply();

/*
Symbol 自Es6起 symbol成为了一个新的原生类型,就像stirng、number一样
symbol类型的值是通过symbol构造函数创建的,且symbol是不可改变且唯一的
-- 不知道为什么在vs2015里无法使用
*/

/*
迭代器
for in  拿到的是下标
for of  拿到的是值 
*/

for (let i in array) { };
for (let i of array) { };

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap