TS的入门:类型 数组
这是因为 TypeScript 只会在编译时对类型进行静态检查,如果发现有错误,编译的时候就会报错。而在运行时,与普通的 JavaScript 文件一样,不会对类型进行检查。
: 指定变量的类型,: 的前后有没有空格都可以
function sayHello(person: string) { if (typeof person === 'string') { return 'Hello, ' + person; } else { throw new Error('person is not a string'); } } let user = 'Tom'; console.log(sayHello(user));
原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol 和 ES10 中的新类型 BigInt。
let createdByNewBoolean: Boolean = new Boolean(1); // Boolean类型 let createdByBoolean: boolean = Boolean(1); let isDone: boolean = false; Boolean 是 JavaScript 中的构造函数。 其他基本类型(除了 null 和 undefined)一样,不再赘述。
JavaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数:
function alertName(): void {
alert('My name is Tom');
}
声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefined 和 null(只在 --strictNullChecks 未指定时):
与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量:
let num: number = undefined;
Any 任意类型
let myFavoriteNumber: any = 'seven'; myFavoriteNumber = 7;
any的操作
let anyThing: any = 'Tom';
anyThing.setName('Jerry');//这些必须有的方法
anyThing.setName('Jerry').sayHello();
anyThing.myName.setFirstName('Cat');方法
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:
let something;
something = 'seven';
something = 7;
//联合属性
let myFavoriteNumber: string | number;
function getLength(something: string | number): number {
return something.length;//不是共同的属性不行
return something.toString();// V 可以
}
赋值的时候,变量的形状必须和接口的形状保持一致【不能添加属性 ,也不能少】
可选属性
interface Person {
name: string;
age?: number;
}
let tom: Person = {
name: 'Tom'
};
任意属性 指定类型
interface Person {
name: string;
age?: number;
[propName: string]: any;
}
//多个属性
interface Person {
name: string;
age?: number;
[propName: string]: string | number;
}
只读属性
interface Person {
readonly id: number;
name: string;
age?: number;
[propName: string]: any;
}
数组
数组的项中不允许出现其他的类型:
let fibonacci: number[] = [1, '1', 2, 3, 5]; //数组是数字类型 let fibonacci: number[] = [1, 1, 2, 3, 5]
数组泛型
let fibonacci: Array<number> = [1, 1, 2, 3, 5];
接口也可以用来描述数组:
interface NumberArray {
[index: number]: number;
}
let fibonacci: NumberArray = [1, 1, 2, 3, 5];

浙公网安备 33010602011771号