typescript type
Article Directory
Number number (natural number, floating point number, negative number)
let number1: number = 111222;
console.log(number1)
number1 = 12.3
console.log(number1)
number1 = -5
console.log(number1)
// 已经定义为number就不能再将其赋值其它类型
number1 = 'dx';
String type string
let str:string = "dx";
console.log(str)
//如果str定为字符串,就只能为其赋值字符串,赋值为number或其它类型会报错
str = 1
Array type array
// 空数组
let array1: [] = [];
// number数组 数组的元素必须全为number类型,否则会报错
let numberArray1: number[] = [1, 2, 3, 4, 5];
// numberArray1.push('dx')
numberArray1.push(2.4);
//字符串数组 数组的元素必须全为字符串类型,否则会报错
let stringArray: string[] = ['x', 'y'];
//对象数组 数组的元素必须全为对象,每个对象都必须有a属性,值为number
let objArray: {
a: number;
}[] = [{
a: 1 }];
Tuple type tuple (used to specify the type of each element in the array)
// tuple元祖类型是数组类型的一种 限制数组的元素个数,
// 并且限制每一个元素的类型
let tupleArray: [string,number,object] = ['dx',3,{
}]
Enumeration type enum
// 枚举类型enum
enum Flag {
wait = '待支付',
success = '已支付',
error = '有内鬼,终止交易',
}
let EnumWait: Flag = Flag.wait;
console.log(EnumWait); //'待支付'
// 也可以直接一点
console.log(Flag.error);
// 不赋值的枚举,会默认赋值为数组的下标
enum Enum1 {
a,
b,
c,
}
let Enum1Value: Enum1 = Enum1.a;
console.log(Enum1Value); // 0
console.log(Enum1.b); // 1
//不全赋值枚举类型
enum Enum2 {
a = 2,
b,
c,
}
let Enum2Value: Enum2 = Enum2.a;
console.log(Enum2Value); // 2
console.log(Enum2.b); // 3
// 会报错的部分枚举, 不能不赋值枚举的类型,除非它上一个没有被赋值或者赋值为number类型
// enum Enum3 {
// a = 'dx',
// b,
// c,
// }
// 不会报错的部分枚举
enum Enum4 {
a = 1,
b,
c,
}
enum Enum5 {
a = 'dx',
b = 1,
c,
}
Any type
// 任意类型 any, 不再受到类型的限制,想怎么赋值就怎么赋值
// 当你不知道某个变量的类型时,可以设置为any
let any1:any = 1
any1 = 'dx'
let any2:any = ''
any2 = 2
let any3:any = {
}
let any4:any = function() {
}
let any5:any = []
null 和 undefined
// undefined 类型 当你不知道某一个变量是否有值时,可以在联合类型中使用undefined
let undefined1: number | undefined = 1;
undefined1 = undefined;
let undefined2: number | undefined = undefined;
// undefined的值只能赋值为undefined
// let undefined3: undefined = null 是不对的
// null类型
let null1:null = null
// null只能赋值为null
// let null2:null = undefined
void type
// void类型,没有任何类型,一般用于方法没有返回值
// a是一个函数,不接受任何参数,并不返回任何值
let a: () => void = function () {
}
function run(): void {
console.log(run);
}
// 如果方法有返回值number
function run1(): number {
return 123
}
如果方法接收参数,返回number
let b: (c:string) => number = function (c) {
return Number(c)
}
never type
// never 类型 表示其它类型,常用于抛出异常,因为我们不知道抛出的异常是一个什么类型,never可以被any代替,不常用
let d: never = (() => {
throw new Error('未知的错误');
})();
type
// type custom type, similar to defining a variable, big camel case naming (industry norms, no error will be reported if you don’t comply),
// type is for convenience and quickness. When multiple data types are the same, you can use one variable The form saves this type and uses it directly.
type TestType = [string, number, any];
const TestType1: TestType = ['dx', 18, '牛逼'];
const TestType2: TestType = ['yx', 18, 4564];
// type 自定义,你想怎么玩都可以,能满足复杂数据的类型设置,
type TypeTest = {
a: number;
b: string;
c: () => void;
};
const TypeTest1 = {
a: 18,
b: 'dx',
c: () => {
console.log(a);
},
};
type Typea = string | number | boolean;
const Typea1: Typea = 1;
const Typea2: Typea = 'dx';
const Typea3: Typea = false;