// 1、String,Number,Boolean, null, undefined
let name: string = '毛叔叔';
let age: number = 18;
let isHandsome: boolean = true;
let n: null = null;
let u: undefined
// 2、Array
let numArr: number[] = [1,2,3];
let strArr: Array<string> = ['1', '2', '3'];
// 3、any
let a: any = 1; // any 可以复制任何值
二、函数
// 参数检查
function isHamdsome (name: string) {
console.log(name + ' so handsome');
};
isHandsome(123);
// Argument of type 'number' is not assignable to parameter of type 'string'.(类型为'数字'的参数不能分配给类型为'字符串'的参数)
// ----
// 定义函数
function oops (isHandsome: (name: string) => void) {
isHandsome('毛叔叔')
}
oops(isHandsome);
// "毛叔叔 so handsome"
// -----
// 返回检查
function isHamdsome (name: string): Boolean {
console.log(name + '超靓仔');
return true;
};
isHamdsome('毛叔叔'); // true
// '毛叔叔超靓仔'
// 如果需要对传入参数进行特殊操作,是希望能够做好判断避免出错
function printId(id: number | string) {
console.log(id.toUpperCase());
// Property 'toUpperCase' does not exist on type 'string | number'.(属性'toUpperCase'在类型'string | number'上不存在。)
// Property 'toUpperCase' does not exist on type 'number'.(属性'toUpperCase'在类型' number'上不存在。)
}
// ---
// 如果该特殊操作在两个类型都可以实行的话,则无需判断
function getFirstThree(x: number[] | string) {
return x.slice(0, 3);
}
五、字面类型
let sex: 'male' | 'female' = 'male';
console.log(sex); //"male"
let age: 18 = 1;
console.log(age); // 1
// Type '1' is not assignable to type '18'.(类型“1”不能分配给类型“18”)