//声明一个变量a,指定他的类型是number ,在之后的使用过程中,他只能是数字
let a :number;
a = 10;
console.log(a);
//声明变量时,进行赋值
let c : boolean = false;
//如果对变量声明同时进行,TS可以自动对变量进行类型检测
let d = false;
//d = 123; 报错
function sum(a,b){
return a+b;
}
console.log( sum(123,456) ); // 579
console.log( sum(123,"456") ); // 123456
//限制参数类型
function sumTs( a:number , b:number ){
return a+b;
}
console.log( sumTs(123,456) ); // 579
//console.log( sumTs(123,"456") ); // 报错@
//限制 参数类型 , 返回值类型
function sumTs2( a:number , b:number ) :number{
return a+b;
}
// 直接使用字面量进行类型生成
let a : 10;
// a = 11; 报错
// b可以是 male 或 female (联合类型)
let b : "male" | "female";
// c 可以是 boolean 类型 也可以是 string 类型
let c : boolean | string;
c = true;
c = "hello";
// any 表示的是任意类型,(关闭ts对变量的类型检测,不建议使用)
let d : any;
d = 10;
d = false;
d = 'hello';
//声明变量不指定类型, 默认为any
let d1;
//unknown 表示未知类型的值 unknown是一个类型安全的any
let e : unknown;
e = 10;
e = 'hello';
e = false;
let s:string;
// 类型断言, 告诉解析器变量的实际类型
s = e as string;
s = <string>e;
function fn():boolean{
return true;
}
//void 空值
function fn1(): void {
console.log("没有返回值");
}
//never 永远不会有返回结果
function fn2(): never {
throw new Error("报错了!");
}
let a : object;
a = {};
a = function(){};
let b:{ name:string };
//b = {}; @报错
b = { name : '张三'}; // 必须指定name
//b = { name : '张三' ,age:18}; // @报错 定义时没有定义 age
//在变量后面加个? 表示 可选的
let c:{ name:string ,age?:number };
c = { name : '张三'};
c = { name : '张三',age :19};
//表示,对象d中要有一个name属性,其他的属性、类型不限制
let d:{name:string,[propName:string]:any}
d = { name : '张三',a:'123',b:true,c:19};
//e 有两个参数,类型是number,返回也是number
//设置函数的类型声明
let e:(a:number,b:number)=>number;
e = function ( n1:number , n2:number ):number {
return n1+n2;
}
// string[] 表示字符串数组
let f: string[];
f = ['a','b','c'];
// Array<number> 表示数值类型的数组
let g:Array<number>;
g = [1,2,3];
// 元组:固定长度的数组 存储效率高
// h 有两个值,第一个类型是string 第二个也是string
let h:[string,string];
// enum 枚举
enum Gender {
Male = 0,
Female = 1,
}
let i:{ name:string , gender:Gender }
i = {
name:'孙悟空',
gender:Gender.Male
}
// | : 或
let j:string | number;
// & :与
let k:{name:string} & {age:number};
k = {name:'张三' , age : 18};
//类型别名
type myType = string;
let m : myType;
type myType2 = 1|2|3|4|6;
let n : myType2;
评论 (0)