TypeScript之简单类型&复杂类型
2021/8/23 23:07:43
本文主要是介绍TypeScript之简单类型&复杂类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简单类型
let my_name: string = '333';
void => 返回空值
function getName(str: string): void { // 使用void 即 没有返回值 } getName('222')
any => 任意类型,这里当类型不确定的时候,就可以使用 any 任意类型,不到万不得已不使用
let abc: any abc = {}
字面量 => 定义什么,就只能赋值什么
let animal: 'dog' | 'cat'; animal = 'dog'; animal = 'cat';
复杂类型
数组 array => 声明单一指定类型的数组
let arr: number[] = [1, 2, 3]
元组 tuple => 声明多个类型的数组,但长度要一致
let tuple: [number, string] = [2, '4']
接口 interface => 它能很方便的帮我们定义 Object 类型,它是非常的灵活可以描述对象的各种类型
interface device { readonly id: 1, // readonly => 不可更改的 type: string, width: number, height?: number, // ? => 可以省略 } let phone: device = { id: 1, type: 'xiaomi', width: 40, }
函数 funtion => 我们要规定函数的 输入类型 和 返回类型; 在形参后面接冒号声明 形参的类型,在 ()后面冒号声明 返回值类型
function sum(num1: number, num2: number, num3?: number): number { return num1 + num2; } sum(2, 3) // 传入多余的参数,或非指定类型的参数均会报错 sum(2, 3, 4) const sum2 = (num1: number, num2: number): number => { return num1 + num2; } const sum3 = (num1: any, num2: any) => { return num1 + num2; } interface sum { (num1: number, num2: number): number } let mySum: sum = sum3
联合类型 union types => 可以指定哪几种类型
let union: number | string; union = '3'; union = 'aaa';
对象 object => let a: object; 是不是没有什么意义,因为 js 中对象太多了
let object: { name: string, age: number } object = { name: 'zhangsan', age: 18 } // 属性必须在类型 { name: string; age: number; } 中
断言 type inference => 我们声明了这个类型为 number | string 它不能调用 length 方法,因为不知道到底是number类型还是string类型
- 写法一:as => 通过 as 来指定某种具体的类型
function getLength1(params: number | string): number { const str = params as string; if (str.length) { return str.length } return str.toString().length } getLength1('345');
- 写法二:<类型>
function getLength2(params: number | string): number { const str = <string>params; if (str.length) { return str.length } return str.toString().length }
类型守卫 type guard => 遇到联合类型的时候,使用 类型守卫可以 缩小范围
类型守卫 除了 typeof 之外 ,还有 instanceof、 in
function getLength3(params: number | string): number { if (typeof params === 'string') { return params.length } return params.toString().length }
这篇关于TypeScript之简单类型&复杂类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)
- 2025-01-03停止思考数据管道,开始构建数据平台:介绍Analytics Engineering Framework