typescript测试之小试牛刀
-次访问
TypeScript基于接口的强类型定义,能很好的弥补javascript语言的先天不足,并且遵循了es6标准,因此只要掌握了 TypeScript ,就相当于掌握了 JavaScript 语言的最新标准,并且能在老式浏览器上完整运行(先吹一波)。
1.变量定义
1 | const test: string = 'nihao'; // 字符串 |
若不按给定的类型定义,将报错,如下:
1 | const aaa: number = '12121'; |
2.接口的使用
例1:1
2
3
4
5
6
7
8
9
10interface SuperHero {
realName: String;
superName: String;
}
const superman: SuperHero = {
realName: 'spiderman', // 需给出符合 SuperHero接口的数据类型的定义
superName: 'superman',
};
console.log(`${superman.realName} is a ${superman.superName}`);
// spiderman is a superman
例2:1
2
3
4
5
6
7
8
9
10
11
12interface SuperHero {
realName: String;
superName: String;
}
// 定义一个 SuperHero类型的数组, SuperHero的值,需是符合SuperHero借口定义的对象。
const SuperHeroes: SuperHero[] = [];
SuperHeroes.push({
realName: 'Ah way',
superName: 'superman',
});
console.log(`${SuperHeroes[0].realName} is a ${SuperHeroes[0].superName}`);
// Ah way is a superman
3.方法的使用:
例1:1
2
3
4
5// 定义一个接收两个number参数的方法,并返回数字类型的和
const getSum = function (num1: number, num2: number): number {
return num1 + num2;
};
const sum1 = getSum(2, 5); // 7
例2:1
2
3
4
5
6
7
8
9// 定义一个方法,其中num2 赋值为2, num3可不传或为number类型的参数
const getSum = function (num1: number, num2 = 2, num3?: number): number {
if (typeof num3 !== 'undefined') {
return num1 + num2 + num3;
}
return num1 + num2;
};
const sum1 = getSum(5); // 7
const sum2 = getSum(5, 2, 1); // 8
例3:1
2
3
4
5// 定义一个方法,接收多个number的参数,并将所有参数整合为数组
const getSum = function (...nums: number[]): void {
const sum = nums.reduce((a, b) => a + b, 0);
};
getSum(5, 2, 1); // 8
4.类继承接口的使用
1 | // 定义一个有drive参数的Vehicle接口,其中drive可以是任意的数据类型 |
5.接收固定参数的方法
1 | function GetType<T>(val: T): string { |
6. 方法继承接口的使用
1 | interface Vehicle { |
7. 接收固定参数的类
1 | // 构造一个GenericNumber类,其中有add方法,接收一个参数,作为add方法参数的类型 |
