TypeScript高级类型之交叉类型、联合类型、类型别名

// 交叉类型将多个类型合并为一个类型, // 联合类型,适合属性为多种类型之一的场景,如字符串或者数组 function formatCommandLine(command: string[] | string) { let line = '' if(typeof command === 'string') { line = command.trim() } else { line = command.join('').trim() } return line } console.log(formatCommandLine(['a', 'b', 'c'])) // abc console.log(formatCommandLine(' a fa fas')) // a fa fas // 类型别名 type many = string | boolean | number const many1: many = 2 const many2: many = '2oops' type container = { value: T } // 泛型作为类型别名 // 类型在属性中引用自己 type Tree = { value: T, left: Tree } // interface和类型别名的区别,interface只能定义对象, // 而type可以定义对象,原始类型,交叉类型,联合类型等 // interface可以实现接口的extends和implements,也可以实现接口合并声明 type Alias = { num: number } interface aliasInterface { num: number } declare function aliased(arg: Alias): Alias declare function interfaced(arg: aliasInterface): aliasInterface

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):

昵称:
邮箱:
内容: