typescript 参数类型

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
注意:一个必填的参数不能在可选参数后面



posted @ 2019-10-09 07:06  wzndkj  阅读(3916)  评论(0编辑  收藏  举报