typescript 数据类型

EN
EN
2022-10-21 / 0 评论 / 23 阅读 / 正在检测是否收录...

//声明一个变量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

评论 (0)

取消