1、参数类型:在参数名称后面使用冒号来指定参数的类型
var myname:string = 'wzn'
=>
"use strict";
var myname = 'wzn';
这个时候就申明了一个字符串类型的变量myname,赋值类型后,后面再对这个值赋值的时候会去检查。如果后续赋值为数字,编辑器就会提示,不能把数字赋值给字符串。虽然有提醒,但是编译以后的js代码是不会错的

当没有申明变量是字符串类型的时候,后续赋值为数字,ts也会报错,这是因为ts中有一个机制,叫做类型推断机制。赋值为字符串,后面就认为这个变变量是字符串。

那么我确实是这个变量既能是字符串,也能是数字,就申明变量类型为any。说明这个变量可以是任何值

 
除了string和any以外,ts还有其他几种类型
数字
var age:number = 13
=>
"use strict";
var age = 13;
布尔
var man:boolean = true
=>
"use strict";
var man = true;
是否有返回值
function test(): void{}
=>
"use strict";
function test() {
}

这个标示不需要任何返回值

function test(): string{
return ''
}
=>
"use strict";
function test() {
return '';
}
声明一个string类型的返回值
function test(name: string){}
test('')
=>
"use strict";
function test(name) { }
test('');
给方法变量声明类型,调用的时候,参数只能是字符串类型
自定义类型
class Person {
name: string;
age: number
}
var zhangsan: Person = new Person();
zhangsan.name = 'zhangsna',
zhangsan.age = 19
2、默认参数:在参数声明后面用等号来指定参数的默认值
function test(a: string, b: string, c: string) {
console.log(a);
console.log(b);
console.log(c);
}
test('xx', 'yy', 'zz')
这个时候要传三个参数,传一个或两个都不行,数量不够,这时候可以给参数指定默认值,这个时候就只传两个参数
function test(a: string, b: string, c: string='zina') {
console.log(a);
console.log(b);
console.log(c);
}
test('xx', 'yy')
带默认值的参数必须写最后面
3、可选参数:在方法的参数声明后面用问号来标明此参数为可选参数
function test(a: string, b?: string, c: string='zina') {
console.log(a);
console.log(b);
console.log(c);
}
这样表示b是可选参数,在调用的时候可以只调用一个参数
function test(a: string, b?: string, c: string='zina') {
console.log(a);
console.log(b);
console.log(c);
}
test('xx')
这样的结果是,a参数是'xx',b参数的undefined,c参数的默认值是zina
注意:一个必填的参数不能在可选参数后面

typescript 参数类型的更多相关文章

  1. TypeScript泛型类 - 把类作为参数类型的泛型类

    /* TypeScript泛型类 - 把类作为参数类型的泛型类 */ /* 泛类:泛型可以帮助我们避免重复的代码以及对不特定数据类型的支持(类型校验),下面我们看看把类当做参数的泛型类 1.定义个类 ...

  2. C# vs TypeScript - 高级类型

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...

  3. 从C#到TypeScript - 高级类型

    C# vs TypeScript - 高级类型 上一篇讲了基础类型,基本上用基础类型足够开发了,不过如果要更高效的开发,还是要看下高级类型,这篇和C#共同点并不多,只是延用这个主题. 联合类型 可以从 ...

  4. TypeScript基础类型,类实例和函数类型声明

    TypeScript(TS)是微软研发的编程语言,是JavaScript的超集,也就是在JavaScript的基础上添加了一些特性.其中之一就是类型声明. 一.基础类型 TS的基础类型有 Boolea ...

  5. typescript枚举,类型推论,类型兼容性,高级类型,Symbols(学习笔记非干货)

    枚举部分 Enumeration part 使用枚举我们可以定义一些有名字的数字常量. 枚举通过 enum关键字来定义. Using enumerations, we can define some ...

  6. TypeScript 之 类型推导

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Type%20Inference.html 类型推导:发生在初始化变 ...

  7. TypeScript 高级类型 接口(interface)

    在代码的实现或者调用上能设定一定的限制和规范,就像契约一样.通常,我们把这种契约称为接口. TypeScript的核心原则之一是对值所具有的结构进行类型检查. 有时称为“鸭式辨型法”或“结构性子类型化 ...

  8. TypeScript入门三:TypeScript函数类型

    TypeScript函数类型 TypeScript函数的参数 TypeScript函数的this与箭头函数 TypeScript函数重载 一.TypeScript函数类型 在上一篇博客中已经对声明Ty ...

  9. 编写TypeScript工具类型,你需要知道的知识

    什么是工具类型 用 JavaScript 编写中大型程序是离不开 lodash 工具的,而用 TypeScript 编程同样离不开工具类型的帮助,工具类型就是类型版的 lodash .简单的来说,就是 ...

随机推荐

  1. [LeetCode] 227. Basic Calculator II 基本计算器 II

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  2. [LeetCode] 815. Bus Routes 公交路线

    We have a list of bus routes. Each routes[i] is a bus route that the i-th bus repeats forever. For e ...

  3. Bazel安装及使用入门

    Bazel [文档][https://docs.bazel.build/versions/1.1.0/bazel-overview.html] MacOS安装 brew tap bazelbuild/ ...

  4. Laravel 数据库实例教程 —— 使用查询构建器对数据库进行增删改查

    原文地址:https://blog.csdn.net/lmy_love_/article/details/72832259 获取查询构建器很简单,还是要依赖DB门面,我们使用DB门面的table方法, ...

  5. C/C++ 面试-面向对象的特性

    面向对象的三大特性 此文只是简单介绍一下三大特性   详细介绍在: 封装:http://www.cnblogs.com/52why/p/7631381.html 继承:http://www.cnblo ...

  6. eNSP上配置RIPv2的认证

    实验拓扑图如下 首先我们对各个路由器及终端PC进行基本ip设置 然后我们在路由器上设置RIPv2协议  并添加要通告的网段 然后我们查看路由表查看路由器已经学到的路由 接下来我们用R3模拟攻击者 通过 ...

  7. ADB 常用命令及详解

    1.pull文件 adb pull (文件路径) (想要pull的路径) MacBook-Pro:~ caris$ adb pull /sdcard/Android/data/com.xiwi.log ...

  8. 小程序重置index,重置item

    重置index,重置item <block wx:for="{{index_data.banner_list}}" wx:for-index="idx" ...

  9. Jenkins运行python脚本出现 configparser.NoSectionError: No section: 'XXXXXX'

    原来的代码如下: def get_test_config(tag, key, config="config.ini"): cf = configparser.ConfigParse ...

  10. LeetCode 331. 验证二叉树的前序序列化(Verify Preorder Serialization of a Binary Tree) 27

    331. 验证二叉树的前序序列化 331. Verify Preorder Serialization of a Binary Tree 题目描述 每日一算法2019/5/30Day 27LeetCo ...