首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

TypeScript 函数 this 参数

TypeScript 2.0 开始,函数和方法我们可以声明 this 类型,实际使用起来也很简单,比如: function sayHello(this: void) { // this:...void:表示函数体内不允许使用this } 在上面的 sayHello 函数,this 参数是伪参数,它位于函数参数列表第一位。... getArea 方法我们没有使用 this 参数,此时 this 类型是 this,如下图所示: ?...Rectangle 长方形类不同, getArea 方法,我们使用了 this 参数,之后 this 类型是 Rectangle 类型,如下图所示: ?... Rectangle 长方形类 getArea 方法 this 入参只是作为一个形式上参数,供 TypeScript 做静态检查时使用,编译后并不会生成实际入参。

7.3K10

TypeScript函数类型

函数声明 JavaScript ,有两种常见定义函数方式——函数声明(Function Declaration)和函数表达式(Function Expression): 函数声明(Function...(x,y){ return x+y; } 一个函数有输入和输出,要在 TypeScript 对其进行约束,需要把输入和输出都考虑到,其中函数声明类型定义较简单: function sum... TypeScript 类型定义,=> 用来表示函数定义,左边是输入类型,需要用括号括起来,右边是输出类型。...参数默认值 ES6 ,我们允许给函数参数添加默认值,TypeScript 会将添加了默认值参数识别为可选参数: function buildName(firstName:string,lastName...在编辑器代码提示,可以正确看到前两个提示。 注意,TypeScript 会优先从最前面的函数定义开始匹配,所以多个函数定义如果有包含关系,需要优先把精确定义写在前面。

2K30

Python 函数参数类型

1.前言 Python 函数参数类型比较丰富,比如我们经常见到 *args 和 **kwargs 作为参数。...初学者遇到这个多少都有点懵逼,今天我们来把 Python 函数参数进行分析和总结。 2.Python 函数参数 Python 定义函数参数有 5 种类型,我们来一一演示它们。...2.1 必选参数 必须参数是最基本参数类型,当你 Python 函数定义一个必选参数时,每次调用都必须给予赋值,否则将报错。...每次调用参数 a 都“记忆”了原来值,这是因为 Python 函数定义时候,默认参数a值就被初始化为[],其实a也是一个变量,它指向对象[],每次调用该函数改变 a值则会改变 a指针指向对象值...总结 Python 函数具有非常灵活参数形态,既可以实现简单调用,又可以传入非常复杂参数。其中也有不少细节,参数类型也是学习 Python 函数一个关键知识点。

3.3K20

TypeScript 始终抽象嵌套类型

TypeScript ,我看到过多次出现这种情况,您有一个复杂对象,该对象可能具有嵌套对象,例如下面的示例:interface ComplexObject { a: string; b: number...现在假设我们想要编写一个以该对象作为输入函数,可能会进行一些插值,并且可能会返回该对象子对象,例如嵌套属性,您可能会有以下代码:const printObj = (obj: ComplexObject...处理类似上面的复杂对象更好方法是将所有嵌套属性抽象为它们自己接口/类型。.../接口分割为更合理可理解模块,而不是拥有一个可能难以阅读庞大类型/接口。...您还可以添加一个优点,即您还可以将嵌套接口用于其他目的,例如您想要用它作为另一个函数参数:const getAFromNested = (nested: ComplexObjectNested) =>

10500

TypeScript-泛型约束中使用类型参数

泛型约束中使用类型参数概述一个泛型被另一个泛型约束, 就叫做 泛型约束中使用类型参数博主需求: 定义一个函数用于根据指定 key 获取对象 value:let getProps = (obj: object..., key: string): any => { return obj[key];}如上代码在编译器当中是会报错,报错原因就是它不知道 obj[key] 返回到底是不是 any 这个类型,...a 和 b 都是存在 key,如果这个时候我要获取一个 c key value 那么就直接是 undefined 了,说明一个问题,代码不够健壮, 明明 obj 没有 c 这个 key 但是却没有报错...,那么这时就可以利用 泛型约束中使用类型参数 来解决该问题,代码如下:图片let getProps = (obj: T, key: K): any => {...,key 只能是 obj 当中存在属性,如果指定 key obj 当中不存在就不允许获取图片图片最后本期结束咱们下次再见~ 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎评论区留言

16110

TypeScript类型断言

本文是关于 TypeScript type assertions ,它与其他语言中类型强制转换有相似之处,并通过 as 运算符执行。... B 行,我们看到此类型不允许访问任何属性。 C 行,我们用类型断言(运算符 as)告诉 TypeScript data 是一个Array。现在就可以访问属性 .length 了。...类型断言是不得已方法,应尽可能避免。他们(暂时)删除了静态类型系统为我们提供安全网。 注意, A 行,我们还覆盖了 TypeScript 静态类型,不过是通过类型注释完成。...类型断言替代语法 TypeScript 对于类型断言有另一种“尖括号”语法: 1>data 该语法已经过时,并且与 React JSX 代码( .tsx 文件)不兼容。...10 // 类型“ {}”上没有找到参数类型为'string'索引签名。

3.7K40

TypeScript Vue2 类型声明问题

0x00 hello world 最近在一个新项目中,尝试了vue2+typescript组合,碰到一个问题,data属性,我怎么声明一个变量类型。...b: string; } export default Vue.extend({ data: function () { return { bar: {}, //怎么优雅告诉编译器他类型...function () { if (this.bar) { this.bar.a = ""; } }, }, }); 这样,只要在函数里面...[] as Foo[]写法,使得数组和非数组写法上统一了,更优雅了一点。...0x05 类型扩展 还有个常见问题,一般来说,Foo类型是接口那边定义类型,定义了接口返回数据类型,但是在编码过程,对接口返回数据进行处理后,需要保存处理后信息到变量,如何在不修改Foo类型定义前提下

4.4K100

typescript工厂函数

TypeScript工厂函数(登录登出) 工厂函数是一种特殊函数,用于创建和返回对象或其他数据结构。它通常用于封装和组织代码,允许动态地创建多个实例或对象,每个实例可能具有不同属性或行为。...object) => { return request({ url: '/logout', method: 'post', data, }); }, }; } 提供例子...详细解释它特点和用法: 目的: useLoginApi 目的是创建一个包含两个方法对象,用于处理登录和登出操作。这样可以将登录和登出逻辑封装到一个单独函数,使代码更有组织性和可重用性。...返回值: 该函数返回一个对象,该对象有两个属性 signIn 和 signOut,分别对应登录和登出操作方法。 参数: useLoginApi 函数本身没有接受任何参数。...使用方法: 导入函数: 首先,在你想要使用这个工厂函数文件,导入它: import { useLoginApi } from '.

15710

实现TypeScript互斥类型

此时,你会怎么用TypeScript来定义这个类型?本文将带大家实现一个互斥类型来解决这个问题,欢迎各位感兴趣开发者阅读本文。 前置知识 实现之前,我们需要先来了解几个基础知识。...: string }; never类型 TypeScript它有一个特殊类型never,它是所有类型类型,无法再进行细分,也就意味着除了其本身没有类型可以再分配给它。...TS中提供了一个名为Exclude函数,它可以用来做这件事,接受两个参数: UnionType 联合类型 ExcludedMembers 需要进行剔除属性 使用方法如下所示: type P = Exclude...| title,TS中提供了一个名为keyof函数,他可以用来处理这个问题,使用方法如下所示: type A = { [P in "name" | "title"]?...> & T); 注意:为了类型可复用性,我们使用了泛型,对此不熟悉开发者请移步:TypeScript中文网——泛型 测试用例 我们将文章开头所说问题代入上述实现代码,看一下它能否将其解决,如下所示

3K40

TypeScript 数组类型定义

TypeScript 声明和初始化数组也很简单,和声明数字类型和字符串类型变量也差不多,只不过指定数组类型时要在类型后面加上一个括号 [] 语法格式 const array_name: dataype...array: Array = ['孟浩然', 99]; 除了使用括号 [] 方法来声明数组,你还可以使用 数组泛型 来定义数组 语法格式 const array_name..., val2, val3],[v1, v2, v3]]; // 等同于 const array_name: datatype[][] = [[val1, val2, val3]]; 多维数组类型 TypeScript...等同于 const test: string[][] = [['狮子头', '清蒸鲈鱼', '鲜椒牛蛙'], ['北京烤鸭'], ['地锅鸡', '饿了']]; 声明一个二维数组 注意: 以下示例类型在数组...个 建议: 定义数组类型时候使用数组泛型定义,这样显得更直观一点 Tuple 元组类型(元组类型允许表示一个已知元素数量和类型数组)

5.3K40

【Kotlin】函数类型 ( 函数类型 | 带参数名称参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )

函数类型 ---- 函数类型格式 : 圆括号定义 参数类型列表 , 使用 -> 由参数列表指向返回值类型 , 表示接受 参数类型列表 参数 , 返回 返回值类型 返回值 ; ( 参数类型列表 )...带参数参数列表 ---- 1 . 函数类型参数名称 : 参数列表可以只是参数类型 , 也可以加上参数变量名称 , 参数名称可以用于说明参数含义 , 增加函数类型理解性 ; 2 ....只有参数类型函数类型 : 参数列表只有参数类型 ; ( 参数类型1 , 参数类型2 , … 参数类型n ) -> 返回值类型 3 ....(Int, Float)->String ; ② 示例类型解析 : String 类型对象上 , 调用 (Int, Int)->String 类型函数 , 函数按照顺序传入 Int , Float...函数类型 派生类 : 函数类型可以看做一个接口 , 类可以实现该接口 , 实现类实现具体函数操作 , 该 函数类型接口实现类 , 可以赋值给函数类型变量 ; class AddOperation

2.5K10

【原创】TypeScript基本类型

TypeScript基本类型 1,布尔值 TypeScript可以使用boolean表示来表示这个变量是布尔值,可以给其赋值为true或者false let isDone:boolean = false...let name:string = "zhangsan"; name = 'lishi'; 4,数组 TypeScript里支持以下两种方式声明数组,第一种,可以元素类型(布尔,数字,字符串等类型)...,各元素类型不必相同,但必须定义元组中元素类型一直,即元组每一个元素类型必须和定义类型一致。...let notSure:unknown = 4; notSure = 'zhangsan'; notSure = false; 8,void 当一个函数不需要返回类型时,则返回类型位置类型通常用void...TypeScriptnull和undefined数据对应类型就是null和undefined let u:null = null; let u:undefined = undefined; 10

9410
领券