TypeScript基本语法---08联合类型(类型别名 type、字符串字面量类型)

联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。表示取值可以为多种类型中的一种,使用 | 分隔每个类型。

注意:只能赋值指定的类型,如果赋值其它类型就会报错。

创建联合类型的语法格式如下:

Type1|Type2|Type3 
//联合类型
var uniteType: string|number = 1122;
console.log('数字:'+uniteType);
uniteType = 'muzidigbig';
console.log('字符串:'+uniteType);

联合类型数组

//联合类型数组
var uniteTypeArr: number[]|string[];
uniteTypeArr = [1,2,4];
console.log('数字数组:'+uniteTypeArr);
uniteTypeArr = ['muzi','digbig',',muzidigbig'];
console.log('字符串数组:'+uniteTypeArr);

 

类型别名 type

使用 type 创建类型别名

类型别名用来给一个类型起个新名字,多用于联合类型:

type Name = string;
type GetName = () => string;
type NameOrGetter = Name | GetName;
function getName(n: NameOrGetter): Name {
    if (typeof n === 'string') {
        return n;
    } else {
        return n();
    }
}

type 声明可以定义联合类型,基本类型等多种类型,而 interface 只能定义对象类型

 

字符串字面量类型

字符串字面量类型用来约束取值只能是某几个字符串中的一个

type EventNames = 'click' | 'scroll' | 'mousemove';
function handleEvent(ele: Element, event: EventNames) {
    // do something
}

handleEvent(document.getElementById('hello'), 'scroll');  // 没问题
handleEvent(document.getElementById('world'), 'dbclick'); // 报错,event 不能为 'dbclick'

 

 

 

发布了246 篇原创文章 · 获赞 260 · 访问量 36万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章