关于对TypeScript泛型参数的默认值理解
目录
- 泛型简介
- 举个
- 举个
- 泛型参数的默认值——函数重载
- 泛型参数的默认值——正文
- 参考
泛型简介
软件工程中,我们不仅要创建一致的定义良好的 API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。
在像C# 和 Java 这样的语言中,可以使用 泛型 来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。
举个
举个最简单的例子来理解泛型
function getVal(val: string): string { return val }
上述代码很简单,约束 getVal
这个函数入参为 string
类型,约束它的返回值和它的入参一样,也是 string
类型。
如上所示,我们传入数值 1
会报错。传入正确类型的参数后,通过上述图像,可以看出 result2
可以调用字符串相关的属性和方法,这是因为 IDE 已经预先推断出了 result2
的类型。
上面的例子是 TypeScript 最基本的应用。此时,我们不妨做一个思考
相关推荐
-
TypeScrip中泛型的案例详解
泛型的定义 // 需求一: 泛型 可以支持不特定的数据类型, 要求,传入的参数和返回参数一致 // 这种方式虽然能实现传入和返回的参数一致,但是失去类型参数检验 /* function getData(value: any): any { return "success" } */ // 定义泛型解决需求一 // T表示泛型(这里的大写字母可以随便定义,但一般默认为T) 具体什么类型是调用这个方法的时候决定的 function getData<T>(value: T):T{
-
TypeScript 泛型的使用
目录 1.简单的使用 2.在函数中使用泛型 3.在类中使用泛型 4.在泛型约束中使用类型参数 前言: 在JavaScript中,封装一个API可以具有多种用途,因为其实弱类型语言,但是就因为是弱类型可以最终得到的结果并不是我们想要的. TypeScript的出现正好中解决了这个问题,但是考虑到API的复用时,TypeScript又显得不是这么的灵活.这个时候可以使用any类型来解决不灵活的问题,但是又回到JavaScript中的问题,得到最终的结果可能不是预期的那个样子. 为了解决这种情况,Ty
-
TypeScript泛型约束条件示例详解
目录 什么是泛型 泛型的应用场景 泛型约束(限制条件) 泛型函数调用指定类型 总结 什么是泛型 两个值之间存在的对应关系,就可以用泛型来解决 泛型的应用场景 当一个函数的返回值的类型需要与此函数的参数类型想关联的时候,就需要使用泛型 例如 //约定此函数调用时必须传入一个数组,并返回数组第一项 function arrFn <T> (arr: T[]) :T|undefined { return arr[0] } const n = arrFn([1,2]) //number类型 const
-
TypeScript泛型参数默认类型和新的strict编译选项
概述 TypeScript 2.3 增加了对声明泛型参数默认类型的支持,允许为泛型类型中的类型参数指定默认类型. 接下来看看如何通过泛型参数默认将以下react组件从js(和jsX)迁移到 TypeScript (和TSX): class Greeting extends react.Component { render() { return <span>Hello, {this.props.name}!</span>; } } 为组件类创建类型定义 咱们先从为Component类
-
关于对TypeScript泛型参数的默认值理解
目录 泛型简介 举个 举个 泛型参数的默认值——函数重载 泛型参数的默认值——正文 参考 泛型简介 软件工程中,我们不仅要创建一致的定义良好的 API,同时也要考虑可重用性. 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能. 在像C# 和 Java 这样的语言中,可以使用 泛型 来创建可重用的组件,一个组件可以支持多种类型的数据. 这样用户就可以以自己的数据类型来使用组件. 举个 举个最简单的例子来理解泛型 function getVal(
-
深入讨论Python函数的参数的默认值所引发的问题的原因
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 陷阱重现 我们就用实际的举例来演示我们今天所要讨论的主要内容. 下面一段代码定义了一个名为 generate_new_list_with 的函数.该函数的本意是在每次调用时都新建一个包含有给定 element 值的list.而实际运行结果如下: Python 2.7.9 (default, Dec 19 2014, 06:05:48) [GCC 4.2.1 Compatible Apple LLV
-
js函数参数设置默认值的一种变通实现方法
php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: 复制代码 代码如下: function simue ($a=1,$b=2){ return $a+$b; } echo simue(); //输出3 echo simue(10); //输出12 echo simue(10,20); //输出30 但js却不能这么定义,如果写function simue(a=1,b=2){}会提示缺少对象. js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个保存到这
-
php定义一个参数带有默认值的函数实例分析
本文实例分析了php定义一个参数带有默认值的函数用法.分享给大家供大家参考.具体分析如下: php的函数参数可以指定默认值,指定默认值后,调用时如果不给该参数赋值,则该参数就使用默认值 <?php function capitalize( $str, $each=TRUE ) { $str = strtolower($str); if ($each === TRUE) { $str = ucwords ($str); } else { $str = strtoupper($str); } ech
-
ES6知识点整理之函数数组参数的默认值及其解构应用示例
本文实例讲述了ES6知识点整理之函数数组参数的默认值及其解构应用.分享给大家供大家参考,具体如下: 在ES6中, 函数的参数也可以使用解构赋值和默认值的设置,下面我们来看下 在ES6之前设置函数默认值的写法 function test(x,y) { x = x || 12; y = y || 22; console.log(x,y); } test(); // 12 22 test(1,2) // 1 2 在ES6中给函数参数赋默认值 function test(x=12, y=22) { co
-
Python定义函数时参数有默认值问题解决
这篇文章主要介绍了Python定义函数时参数有默认值问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在定义函数的时候,如果函数的参数有默认值,有两种类型的参数,一种是整数,字符串这种不可变类型,另一种是列表这种可变类型,对于第一种情况没有什么特殊的地方,但是对于可变类型,有一个微妙的小陷阱. 可变类型以及小陷阱: def append_item(item, list1=[]): list1.append(item) return lis
-
Python中自定义函方法与参数具有默认值的函数
目录 一.Python中自定义函数的方法 1自定义函数的语法 2自定义函数的实现 3自定义函数的调用 二.Python中参数具有默认值的函数 1参数是常量默认值的函数 2参数是常量默认值的函数 一.Python中自定义函数的方法 在Python编程中,可以使用已经定义好的函数,也可以自定义函数实现某些特殊的功能. 1 自定义函数的语法 在Python中,自定义函数的语法如下所示: def 函数名(参数): 函数体 其中,def是关键字:之后跟的是函数名,通过函数名来调用该函数:函数名之后
-
在controller中如何设置接收参数的默认值
目录 controller设置接收参数的默认值 @RequestParam代表的是请求参数注解 controller的传参问题 controller的映射 直接写类型,跟参数名 Request.getParameter方法 @RequestParam注解 @PathVariable注解 controller设置接收参数的默认值 public @ResponseBody Object queryActivityForPageByCondition( @RequestParam(value="kkk
-
C++超详细讲解函数参数的默认值
目录 1.参数默认值的指定方式 2.参数默认值的指定规则 1.参数默认值的指定方式 在 C++ 中,可以在函数声明时为参数提供一个默认值.这样在函数调用时,如果没有提供函数参数值,则使用默认值. e.g. 在函数声明时,指定参数默认值 void Demo(int x = 0); int main(int argc, char* argv[]) { Demo(); // 不用提供参数,会将 x = 0 的结果输出 return 0; } void Demo(int x) { printf("x =
随机推荐
- CSS入门教程篇
- JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
- DOS批处理高级教程 第五章 set命令详解
- IOS App 无代码入侵的方法hook详细介绍
- asp.net 页面传值的几个方法
- Markdown+Bootstrap图片自适应属性详解
- python将多个文本文件合并为一个文本的代码(便于搜索)
- python随机生成指定长度密码的方法
- asp 将日期格式化为需要的格式
- 用PHP和ACCESS写聊天室(五)
- js判断浏览器类型及设备(移动页面开发)
- C#验证给定字符串形式日期是否合法的方法
- PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- 用js怎么把&字符换成"&:"
- 我也来当坛主 动手架设自己的BBS
- 限制Win9X/NT系统功能二十六招
- 最近较流行的效果 Android自定义View实现倾斜列表/图片
- Android 中无法取消标题栏的问题小结(两种方法)
- javascript+dom树型菜单类,希望朋友们一起进步